[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