@@ -1376,7 +1376,7 @@ let Predicates = [HasBMI2, NoTBM, HasEGPR] in {
1376
1376
}
1377
1377
1378
1378
multiclass bmi_pdep_pext<string mnemonic, X86TypeInfo t, SDPatternOperator OpNode,
1379
- PatFrag ld_frag, string suffix = ""> {
1379
+ string suffix = ""> {
1380
1380
def rr#suffix : ITy<0xF5, MRMSrcReg, t, (outs t.RegClass:$dst),
1381
1381
(ins t.RegClass:$src1, t.RegClass:$src2),
1382
1382
mnemonic, binop_ndd_args,
@@ -1385,22 +1385,22 @@ multiclass bmi_pdep_pext<string mnemonic, X86TypeInfo t, SDPatternOperator OpNod
1385
1385
def rm#suffix : ITy<0xF5, MRMSrcMem, t, (outs t.RegClass:$dst),
1386
1386
(ins t.RegClass:$src1, t.MemOperand:$src2),
1387
1387
mnemonic, binop_ndd_args,
1388
- [(set t.RegClass:$dst, (OpNode t.RegClass:$src1, (ld_frag addr:$src2)))]>,
1388
+ [(set t.RegClass:$dst, (OpNode t.RegClass:$src1, (t.LoadNode addr:$src2)))]>,
1389
1389
VVVV, Sched<[WriteALU.Folded, WriteALU.ReadAfterFold]>;
1390
1390
}
1391
1391
1392
1392
let Predicates = [HasBMI2, NoEGPR] in {
1393
- defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, X86pdep, loadi32 >, T8, XD, VEX;
1394
- defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, X86pdep, loadi64 >, T8, XD, REX_W, VEX;
1395
- defm PEXT32 : bmi_pdep_pext<"pext", Xi32, X86pext, loadi32 >, T8, XS, VEX;
1396
- defm PEXT64 : bmi_pdep_pext<"pext", Xi64, X86pext, loadi64 >, T8, XS, REX_W, VEX;
1393
+ defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, X86pdep>, T8, XD, VEX;
1394
+ defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, X86pdep>, T8, XD, REX_W, VEX;
1395
+ defm PEXT32 : bmi_pdep_pext<"pext", Xi32, X86pext>, T8, XS, VEX;
1396
+ defm PEXT64 : bmi_pdep_pext<"pext", Xi64, X86pext>, T8, XS, REX_W, VEX;
1397
1397
}
1398
1398
1399
1399
let Predicates = [HasBMI2, HasEGPR] in {
1400
- defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, X86pdep, loadi32, "_EVEX">, T8, XD, EVEX;
1401
- defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, X86pdep, loadi64, "_EVEX">, T8, XD, REX_W, EVEX;
1402
- defm PEXT32 : bmi_pdep_pext<"pext", Xi32, X86pext, loadi32, "_EVEX">, T8, XS, EVEX;
1403
- defm PEXT64 : bmi_pdep_pext<"pext", Xi64, X86pext, loadi64, "_EVEX">, T8, XS, REX_W, EVEX;
1400
+ defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, X86pdep, "_EVEX">, T8, XD, EVEX;
1401
+ defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, X86pdep, "_EVEX">, T8, XD, REX_W, EVEX;
1402
+ defm PEXT32 : bmi_pdep_pext<"pext", Xi32, X86pext, "_EVEX">, T8, XS, EVEX;
1403
+ defm PEXT64 : bmi_pdep_pext<"pext", Xi64, X86pext, "_EVEX">, T8, XS, REX_W, EVEX;
1404
1404
}
1405
1405
1406
1406
//===----------------------------------------------------------------------===//
0 commit comments