[llvm] [PowerPC] Add load/store support for v2048i1 and DMF cryptography instructions (PR #136145)

Maryam Moghadas via llvm-commits llvm-commits at lists.llvm.org
Thu May 15 09:37:25 PDT 2025


================
@@ -260,3 +336,54 @@ let Predicates = [MMA, PrefixInstrs, IsISAFuture] in {
             (PMDMXVI8GERX4SPP $ATi, $XAp, RCCp.BToVSRC, Msk8Imm:$XMSK,
                            Msk4Imm:$YMSK, Msk4Imm:$PMSK)>;
 }
+
+// cryptography Intrinsics
+let Predicates = [IsISAFuture] in {
+  def : Pat<(v1024i1 (int_ppc_mma_dmsha2hash v1024i1:$ATi, v1024i1:$AB, timm:$T)),
+             (DMSHA2HASH $ATi, $AB, $T)>;
----------------
maryammo wrote:

In the Pat for the third one, it uses `RCCp.BToVSRC`, which expands to `(COPY_TO_REGCLASS $XB, VSRC)` based on : 
```
def RCCp {
  dag AToVSRC = (COPY_TO_REGCLASS $XA, VSRC);
  dag BToVSRC = (COPY_TO_REGCLASS $XB, VSRC);
}
```
It seems using COPY_TO_REGCLASS requires a separate Pat and is not allowed in instruction patterns. So combining them makes it fail to build.


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


More information about the llvm-commits mailing list