[clang] [llvm] [Clang][PowerPC] Add DMF crypto builtins for extended mnemonics (PR #185961)
Lei Huang via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 17 09:24:44 PDT 2026
================
@@ -1160,14 +1151,89 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
Value *Acc = Builder.CreateLoad(Addr);
CallOps.push_back(Acc);
}
- if (BuiltinID == PPC::BI__builtin_dmmr ||
- BuiltinID == PPC::BI__builtin_dmxor ||
- BuiltinID == PPC::BI__builtin_disassemble_dmr ||
+ if (BuiltinID == PPC::BI__builtin_mma_dmmr ||
+ BuiltinID == PPC::BI__builtin_mma_dmxor ||
+ BuiltinID == PPC::BI__builtin_mma_disassemble_dmr ||
BuiltinID == PPC::BI__builtin_mma_dmsha2hash) {
Address Addr = EmitPointerWithAlignment(E->getArg(1));
Ops[1] = Builder.CreateLoad(Addr);
}
- if (BuiltinID == PPC::BI__builtin_disassemble_dmr)
+ if (BuiltinID == PPC::BI__builtin_dmsha256hash ||
+ BuiltinID == PPC::BI__builtin_dmsha512hash) {
+ Address Addr = EmitPointerWithAlignment(E->getArg(1));
+ Ops[1] = Builder.CreateLoad(Addr);
+ int Imm = (BuiltinID == PPC::BI__builtin_dmsha256hash) ? 0 : 1;
+ Ops.push_back(llvm::ConstantInt::get(Int32Ty, Imm));
+ }
+ if (BuiltinID == PPC::BI__builtin_dmsha3dw ||
+ BuiltinID == PPC::BI__builtin_dmcryshash) {
+ int Imm = (BuiltinID == PPC::BI__builtin_dmsha3dw) ? 0 : 12;
+ Ops.push_back(llvm::ConstantInt::get(Int32Ty, Imm));
+ }
----------------
lei137 wrote:
nit: seems this can just simply be:
```suggestion
if (BuiltinID == PPC::BI__builtin_dmsha3dw)
Ops.push_back(llvm::ConstantInt::get(Int32Ty, 0));
else if (BuiltinID == PPC::BI__builtin_dmcryshash)
Ops.push_back(llvm::ConstantInt::get(Int32Ty, 12));
```
https://github.com/llvm/llvm-project/pull/185961
More information about the cfe-commits
mailing list