[PATCH] D106757: [PowerPC] Implement partial vector ld/st builtins for XL compatibility

Nemanja Ivanovic via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jul 24 12:45:25 PDT 2021


nemanjai created this revision.
nemanjai added a reviewer: PowerPC.
Herald added subscribers: shchenz, kbarton.
nemanjai requested review of this revision.
Herald added a project: clang.

XL provides functions `__vec_ldrmb/__vec_strmb` for loading/storing a sequence of 1 to 16 bytes in big endian order, right justified in the vector register (regardless of target endianness).
This is equivalent to `vec_xl_len_r/vec_xst_len_r` which are only available on Power9.

This patch simply uses the Power9 functions when compiled for Power9, but provides a more general implementation for Power8.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D106757

Files:
  clang/include/clang/Basic/BuiltinsPPC.def
  clang/lib/CodeGen/CGBuiltin.cpp
  clang/lib/Headers/altivec.h
  clang/lib/Sema/SemaChecking.cpp
  clang/test/CodeGen/builtins-ppc-ld-st-rmb.c
  clang/test/CodeGen/builtins-ppc-xlcompat-pwr8.c
  clang/test/CodeGen/builtins-ppc-xlcompat-vec-error.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106757.361476.patch
Type: text/x-patch
Size: 158438 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210724/d6bff543/attachment-0001.bin>


More information about the cfe-commits mailing list