[clang] [llvm] [PowerPC] Add Support for BCDSHIFT, BCDSHIFTR, BCDTRUNC, BCDUTRUNC, and BCDUSHIFT instruction support (PR #154715)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 3 14:58:24 PDT 2025


================
@@ -582,6 +582,11 @@ TARGET_BUILTIN(__builtin_ppc_bcdsub_p, "iiV16UcV16Uc", "",
 // P9 Binary-coded decimal (BCD) builtins.                                                
 TARGET_BUILTIN(__builtin_ppc_bcdcopysign, "V16UcV16UcV16Uc", "", "power9-vector")
 TARGET_BUILTIN(__builtin_ppc_bcdsetsign, "V16UcV16UcUc", "t", "power9-vector")
+TARGET_BUILTIN(__builtin_ppc_bcdshift, "V16UcV16UciUc", "t", "power9-vector")
+TARGET_BUILTIN(__builtin_ppc_bcdshiftround, "V16UcV16UciUc", "t", "power9-vector")
+TARGET_BUILTIN(__builtin_ppc_bcdtruncate, "V16UcV16UciUc", "t", "power9-vector")
----------------
RolandF77 wrote:

If we use ATTR "t" then we give up checking the signature in order to have custom checking. But the custom checking only checks the range of the constant, not the types.

https://github.com/llvm/llvm-project/pull/154715


More information about the llvm-commits mailing list