@@ -535,25 +535,25 @@ let Predicates = [MMA, IsNotISAFuture] in {
535
535
}
536
536
537
537
let Predicates = [MMA, IsISAFuture], isCodeGenOnly = 1 in {
538
+ // For Future and up XXMFACCW and XXMTACCW will not have patterns.
538
539
// On Future CPU the wacc registers no longer overlap with the vsr registers
539
- // so register allocation need to match 4 vsr registers with one wacc
540
- // register. XXMTACC/XXFACC will be aliased to these new instructions.
541
- def DMXXMFACC:
542
- XForm_AT3<31, 0, 177, (outs wacc:$ATo), (ins wacc:$AT), "dmxxmfacc $AT",
543
- IIC_VecGeneral,
544
- [(set v512i1:$ATo, (int_ppc_mma_xxmfacc v512i1:$AT))]>,
540
+ // and so register allocation would have to know to match 4 vsr registers
541
+ // with one wacc register.
542
+ // On top of that Future CPU has a more convenient way to move between vsrs
543
+ // and wacc registers using xxextfdmr512 and xxinstdmr512.
544
+ def XXMFACCW :
545
+ XForm_AT3<31, 0, 177, (outs wacc:$ATo), (ins wacc:$AT), "xxmfacc $AT",
546
+ IIC_VecGeneral, []>,
545
547
RegConstraint<"$ATo = $AT">, NoEncode<"$ATo">;
546
- def DMXXMTACC:
547
- XForm_AT3<31, 1, 177, (outs wacc:$AT), (ins wacc:$ATi), "dmxxmtacc $AT",
548
- IIC_VecGeneral,
549
- [(set v512i1:$AT, (int_ppc_mma_xxmtacc v512i1:$ATi))]>,
548
+ def XXMTACCW :
549
+ XForm_AT3<31, 1, 177, (outs wacc:$AT), (ins wacc:$ATi), "xxmtacc $AT",
550
+ IIC_VecGeneral, []>,
550
551
RegConstraint<"$ATi = $AT">, NoEncode<"$ATi">;
551
552
552
553
let isAsCheapAsAMove = 1, isReMaterializable = 1 in {
553
- def DMXXSETACCZ:
554
+ def DMXXSETACCZ :
554
555
XForm_AT3<31, 3, 177, (outs wacc:$AT), (ins), "dmxxsetaccz $AT",
555
- IIC_VecGeneral,
556
- [(set v512i1:$AT, (int_ppc_mma_xxsetaccz))]>;
556
+ IIC_VecGeneral, [(set v512i1:$AT, (int_ppc_mma_xxsetaccz))]>;
557
557
}
558
558
559
559
def XVI8GER4WSPP :
0 commit comments