@@ -1375,41 +1375,32 @@ let Predicates = [HasBMI2, NoTBM, HasEGPR] in {
1375
1375
(MOV8ri (CountTrailingOnes imm:$mask)), sub_8bit))>;
1376
1376
}
1377
1377
1378
- multiclass bmi_pdep_pext<string mnemonic, X86TypeInfo t,
1379
- X86MemOperand x86memop, SDPatternOperator OpNode,
1378
+ multiclass bmi_pdep_pext<string mnemonic, X86TypeInfo t, SDPatternOperator OpNode,
1380
1379
PatFrag ld_frag, string suffix = ""> {
1381
1380
def rr#suffix : ITy<0xF5, MRMSrcReg, t, (outs t.RegClass:$dst),
1382
1381
(ins t.RegClass:$src1, t.RegClass:$src2),
1383
1382
mnemonic, binop_ndd_args,
1384
1383
[(set t.RegClass:$dst, (OpNode t.RegClass:$src1, t.RegClass:$src2))]>,
1385
1384
VVVV, Sched<[WriteALU]>;
1386
1385
def rm#suffix : ITy<0xF5, MRMSrcMem, t, (outs t.RegClass:$dst),
1387
- (ins t.RegClass:$src1, x86memop :$src2),
1386
+ (ins t.RegClass:$src1, t.MemOperand :$src2),
1388
1387
mnemonic, binop_ndd_args,
1389
1388
[(set t.RegClass:$dst, (OpNode t.RegClass:$src1, (ld_frag addr:$src2)))]>,
1390
1389
VVVV, Sched<[WriteALU.Folded, WriteALU.ReadAfterFold]>;
1391
1390
}
1392
1391
1393
1392
let Predicates = [HasBMI2, NoEGPR] in {
1394
- defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, i32mem,
1395
- X86pdep, loadi32>, T8, XD, VEX;
1396
- defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, i64mem,
1397
- X86pdep, loadi64>, T8, XD, REX_W, VEX;
1398
- defm PEXT32 : bmi_pdep_pext<"pext", Xi32, i32mem,
1399
- X86pext, loadi32>, T8, XS, VEX;
1400
- defm PEXT64 : bmi_pdep_pext<"pext", Xi64, i64mem,
1401
- X86pext, loadi64>, T8, XS, REX_W, VEX;
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;
1402
1397
}
1403
1398
1404
1399
let Predicates = [HasBMI2, HasEGPR] in {
1405
- defm PDEP32 : bmi_pdep_pext<"pdep", Xi32, i32mem,
1406
- X86pdep, loadi32, "_EVEX">, T8, XD, EVEX;
1407
- defm PDEP64 : bmi_pdep_pext<"pdep", Xi64, i64mem,
1408
- X86pdep, loadi64, "_EVEX">, T8, XD, REX_W, EVEX;
1409
- defm PEXT32 : bmi_pdep_pext<"pext", Xi32, i32mem,
1410
- X86pext, loadi32, "_EVEX">, T8, XS, EVEX;
1411
- defm PEXT64 : bmi_pdep_pext<"pext", Xi64, i64mem,
1412
- X86pext, loadi64, "_EVEX">, T8, XS, REX_W, EVEX;
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;
1413
1404
}
1414
1405
1415
1406
//===----------------------------------------------------------------------===//
0 commit comments