aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorHimadhith <79003240+Himadhith@users.noreply.github.com>2025-06-25 14:47:38 +0530
committerGitHub <noreply@github.com>2025-06-25 14:47:38 +0530
commit32febe60f36441f8a139b4119a99d17285ca0b4b (patch)
treef84d0d20eec5860450d7523b4400975220d7fb18 /clang/lib/Basic
parent0f01cd52891421bd0283b2bf14b968a857321d7f (diff)
downloadllvm-32febe60f36441f8a139b4119a99d17285ca0b4b.zip
llvm-32febe60f36441f8a139b4119a99d17285ca0b4b.tar.gz
llvm-32febe60f36441f8a139b4119a99d17285ca0b4b.tar.bz2
[PowerPC] Support for Packed BCD conversion builtins (#142723)
Support the following packed BCD builtins for PowerPC. ``` __builtin_national2packed - Conversion of National format to Packed decimal format. __builtin_packed2national - Conversion of Packed decimal format to national format. __builtin_packed2zoned - Conversion of Packed decimal format to Zoned decimal format. __builtin_zoned2packed - Conversion of Zoned decimal format to Packed decimal format. ``` ### Prototypes: `vector unsigned char __builtin_national2packed(vector unsigned char a, unsigned char b);` `vector unsigned char __builtin_packed2zoned(vector unsigned char, unsigned char);` `vector unsigned char __builtin_zoned2packed(vector unsigned char, unsigned char);` The condition for the 2nd parameter is consistent over all the 3 prototypes (0 or 1 only). `vector unsigned char __builtin_packed2national(vector unsigned char);` Co-authored-by: himadhith <himadhith.v@ibm.com> Co-authored-by: Tony Varghese <tonypalampalliyil@gmail.com>
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets/PPC.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp
index 77145e2..05a5dc2 100644
--- a/clang/lib/Basic/Targets/PPC.cpp
+++ b/clang/lib/Basic/Targets/PPC.cpp
@@ -89,6 +89,12 @@ bool PPCTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
}
static void defineXLCompatMacros(MacroBuilder &Builder) {
+ Builder.defineMacro("__builtin_national2packed",
+ "__builtin_ppc_national2packed");
+ Builder.defineMacro("__builtin_packed2national",
+ "__builtin_ppc_packed2national");
+ Builder.defineMacro("__builtin_packed2zoned", "__builtin_ppc_packed2zoned");
+ Builder.defineMacro("__builtin_zoned2packed", "__builtin_ppc_zoned2packed");
Builder.defineMacro("__cdtbcd", "__builtin_ppc_cdtbcd");
Builder.defineMacro("__cbcdtd", "__builtin_ppc_cbcdtd");
Builder.defineMacro("__addg6s", "__builtin_ppc_addg6s");