@@ -1341,52 +1341,52 @@ let Defs = [EFLAGS] in {
1341
1341
def BSF16rr : I<0xBC, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
1342
1342
"bsf{w}\t{$src, $dst|$dst, $src}",
1343
1343
[(set GR16:$dst, EFLAGS, (X86bsf GR16:$src))],
1344
- IIC_BIT_SCAN_REG>, PS, OpSize16, Sched<[WriteShift ]>;
1344
+ IIC_BIT_SCAN_REG>, PS, OpSize16, Sched<[WriteBitScan ]>;
1345
1345
def BSF16rm : I<0xBC, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
1346
1346
"bsf{w}\t{$src, $dst|$dst, $src}",
1347
1347
[(set GR16:$dst, EFLAGS, (X86bsf (loadi16 addr:$src)))],
1348
- IIC_BIT_SCAN_MEM>, PS, OpSize16, Sched<[WriteShiftLd ]>;
1348
+ IIC_BIT_SCAN_MEM>, PS, OpSize16, Sched<[WriteBitScanLd ]>;
1349
1349
def BSF32rr : I<0xBC, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
1350
1350
"bsf{l}\t{$src, $dst|$dst, $src}",
1351
1351
[(set GR32:$dst, EFLAGS, (X86bsf GR32:$src))],
1352
- IIC_BIT_SCAN_REG>, PS, OpSize32, Sched<[WriteShift ]>;
1352
+ IIC_BIT_SCAN_REG>, PS, OpSize32, Sched<[WriteBitScan ]>;
1353
1353
def BSF32rm : I<0xBC, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src),
1354
1354
"bsf{l}\t{$src, $dst|$dst, $src}",
1355
1355
[(set GR32:$dst, EFLAGS, (X86bsf (loadi32 addr:$src)))],
1356
- IIC_BIT_SCAN_MEM>, PS, OpSize32, Sched<[WriteShiftLd ]>;
1356
+ IIC_BIT_SCAN_MEM>, PS, OpSize32, Sched<[WriteBitScanLd ]>;
1357
1357
def BSF64rr : RI<0xBC, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
1358
1358
"bsf{q}\t{$src, $dst|$dst, $src}",
1359
1359
[(set GR64:$dst, EFLAGS, (X86bsf GR64:$src))],
1360
- IIC_BIT_SCAN_REG>, PS, Sched<[WriteShift ]>;
1360
+ IIC_BIT_SCAN_REG>, PS, Sched<[WriteBitScan ]>;
1361
1361
def BSF64rm : RI<0xBC, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
1362
1362
"bsf{q}\t{$src, $dst|$dst, $src}",
1363
1363
[(set GR64:$dst, EFLAGS, (X86bsf (loadi64 addr:$src)))],
1364
- IIC_BIT_SCAN_MEM>, PS, Sched<[WriteShiftLd ]>;
1364
+ IIC_BIT_SCAN_MEM>, PS, Sched<[WriteBitScanLd ]>;
1365
1365
1366
1366
def BSR16rr : I<0xBD, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
1367
1367
"bsr{w}\t{$src, $dst|$dst, $src}",
1368
1368
[(set GR16:$dst, EFLAGS, (X86bsr GR16:$src))],
1369
- IIC_BIT_SCAN_REG>, PS, OpSize16, Sched<[WriteShift ]>;
1369
+ IIC_BIT_SCAN_REG>, PS, OpSize16, Sched<[WriteBitScan ]>;
1370
1370
def BSR16rm : I<0xBD, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
1371
1371
"bsr{w}\t{$src, $dst|$dst, $src}",
1372
1372
[(set GR16:$dst, EFLAGS, (X86bsr (loadi16 addr:$src)))],
1373
- IIC_BIT_SCAN_MEM>, PS, OpSize16, Sched<[WriteShiftLd ]>;
1373
+ IIC_BIT_SCAN_MEM>, PS, OpSize16, Sched<[WriteBitScanLd ]>;
1374
1374
def BSR32rr : I<0xBD, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
1375
1375
"bsr{l}\t{$src, $dst|$dst, $src}",
1376
1376
[(set GR32:$dst, EFLAGS, (X86bsr GR32:$src))],
1377
- IIC_BIT_SCAN_REG>, PS, OpSize32, Sched<[WriteShift ]>;
1377
+ IIC_BIT_SCAN_REG>, PS, OpSize32, Sched<[WriteBitScan ]>;
1378
1378
def BSR32rm : I<0xBD, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src),
1379
1379
"bsr{l}\t{$src, $dst|$dst, $src}",
1380
1380
[(set GR32:$dst, EFLAGS, (X86bsr (loadi32 addr:$src)))],
1381
- IIC_BIT_SCAN_MEM>, PS, OpSize32, Sched<[WriteShiftLd ]>;
1381
+ IIC_BIT_SCAN_MEM>, PS, OpSize32, Sched<[WriteBitScanLd ]>;
1382
1382
def BSR64rr : RI<0xBD, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
1383
1383
"bsr{q}\t{$src, $dst|$dst, $src}",
1384
1384
[(set GR64:$dst, EFLAGS, (X86bsr GR64:$src))],
1385
- IIC_BIT_SCAN_REG>, PS, Sched<[WriteShift ]>;
1385
+ IIC_BIT_SCAN_REG>, PS, Sched<[WriteBitScan ]>;
1386
1386
def BSR64rm : RI<0xBD, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
1387
1387
"bsr{q}\t{$src, $dst|$dst, $src}",
1388
1388
[(set GR64:$dst, EFLAGS, (X86bsr (loadi64 addr:$src)))],
1389
- IIC_BIT_SCAN_MEM>, PS, Sched<[WriteShiftLd ]>;
1389
+ IIC_BIT_SCAN_MEM>, PS, Sched<[WriteBitScanLd ]>;
1390
1390
} // Defs = [EFLAGS]
1391
1391
1392
1392
let SchedRW = [WriteMicrocoded] in {
@@ -2269,32 +2269,32 @@ let Predicates = [HasLZCNT], Defs = [EFLAGS] in {
2269
2269
def LZCNT16rr : I<0xBD, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
2270
2270
"lzcnt{w}\t{$src, $dst|$dst, $src}",
2271
2271
[(set GR16:$dst, (ctlz GR16:$src)), (implicit EFLAGS)],
2272
- IIC_LZCNT_RR>, XS, OpSize16, Sched<[WriteIMul ]>;
2272
+ IIC_LZCNT_RR>, XS, OpSize16, Sched<[WriteLZCNT ]>;
2273
2273
def LZCNT16rm : I<0xBD, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
2274
2274
"lzcnt{w}\t{$src, $dst|$dst, $src}",
2275
2275
[(set GR16:$dst, (ctlz (loadi16 addr:$src))),
2276
2276
(implicit EFLAGS)], IIC_LZCNT_RM>, XS, OpSize16,
2277
- Sched<[WriteIMulLd ]>;
2277
+ Sched<[WriteLZCNTLd ]>;
2278
2278
2279
2279
def LZCNT32rr : I<0xBD, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
2280
2280
"lzcnt{l}\t{$src, $dst|$dst, $src}",
2281
2281
[(set GR32:$dst, (ctlz GR32:$src)), (implicit EFLAGS)],
2282
- IIC_LZCNT_RR>, XS, OpSize32, Sched<[WriteIMul ]>;
2282
+ IIC_LZCNT_RR>, XS, OpSize32, Sched<[WriteLZCNT ]>;
2283
2283
def LZCNT32rm : I<0xBD, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src),
2284
2284
"lzcnt{l}\t{$src, $dst|$dst, $src}",
2285
2285
[(set GR32:$dst, (ctlz (loadi32 addr:$src))),
2286
2286
(implicit EFLAGS)], IIC_LZCNT_RM>, XS, OpSize32,
2287
- Sched<[WriteIMulLd ]>;
2287
+ Sched<[WriteLZCNTLd ]>;
2288
2288
2289
2289
def LZCNT64rr : RI<0xBD, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
2290
2290
"lzcnt{q}\t{$src, $dst|$dst, $src}",
2291
2291
[(set GR64:$dst, (ctlz GR64:$src)), (implicit EFLAGS)],
2292
- IIC_LZCNT_RR>, XS, Sched<[WriteIMul ]>;
2292
+ IIC_LZCNT_RR>, XS, Sched<[WriteLZCNT ]>;
2293
2293
def LZCNT64rm : RI<0xBD, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
2294
2294
"lzcnt{q}\t{$src, $dst|$dst, $src}",
2295
2295
[(set GR64:$dst, (ctlz (loadi64 addr:$src))),
2296
2296
(implicit EFLAGS)], IIC_LZCNT_RM>, XS,
2297
- Sched<[WriteIMulLd ]>;
2297
+ Sched<[WriteLZCNTLd ]>;
2298
2298
}
2299
2299
2300
2300
//===----------------------------------------------------------------------===//
@@ -2304,32 +2304,32 @@ let Predicates = [HasBMI], Defs = [EFLAGS] in {
2304
2304
def TZCNT16rr : I<0xBC, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
2305
2305
"tzcnt{w}\t{$src, $dst|$dst, $src}",
2306
2306
[(set GR16:$dst, (cttz GR16:$src)), (implicit EFLAGS)],
2307
- IIC_TZCNT_RR>, XS, OpSize16, Sched<[WriteIMul ]>;
2307
+ IIC_TZCNT_RR>, XS, OpSize16, Sched<[WriteTZCNT ]>;
2308
2308
def TZCNT16rm : I<0xBC, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
2309
2309
"tzcnt{w}\t{$src, $dst|$dst, $src}",
2310
2310
[(set GR16:$dst, (cttz (loadi16 addr:$src))),
2311
2311
(implicit EFLAGS)], IIC_TZCNT_RM>, XS, OpSize16,
2312
- Sched<[WriteIMulLd ]>;
2312
+ Sched<[WriteTZCNTLd ]>;
2313
2313
2314
2314
def TZCNT32rr : I<0xBC, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
2315
2315
"tzcnt{l}\t{$src, $dst|$dst, $src}",
2316
2316
[(set GR32:$dst, (cttz GR32:$src)), (implicit EFLAGS)],
2317
- IIC_TZCNT_RR>, XS, OpSize32, Sched<[WriteIMul ]>;
2317
+ IIC_TZCNT_RR>, XS, OpSize32, Sched<[WriteTZCNT ]>;
2318
2318
def TZCNT32rm : I<0xBC, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src),
2319
2319
"tzcnt{l}\t{$src, $dst|$dst, $src}",
2320
2320
[(set GR32:$dst, (cttz (loadi32 addr:$src))),
2321
2321
(implicit EFLAGS)], IIC_TZCNT_RM>, XS, OpSize32,
2322
- Sched<[WriteIMulLd ]>;
2322
+ Sched<[WriteTZCNTLd ]>;
2323
2323
2324
2324
def TZCNT64rr : RI<0xBC, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
2325
2325
"tzcnt{q}\t{$src, $dst|$dst, $src}",
2326
2326
[(set GR64:$dst, (cttz GR64:$src)), (implicit EFLAGS)],
2327
- IIC_TZCNT_RR>, XS, Sched<[WriteIMul ]>;
2327
+ IIC_TZCNT_RR>, XS, Sched<[WriteTZCNT ]>;
2328
2328
def TZCNT64rm : RI<0xBC, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
2329
2329
"tzcnt{q}\t{$src, $dst|$dst, $src}",
2330
2330
[(set GR64:$dst, (cttz (loadi64 addr:$src))),
2331
2331
(implicit EFLAGS)], IIC_TZCNT_RM>, XS,
2332
- Sched<[WriteIMulLd ]>;
2332
+ Sched<[WriteTZCNTLd ]>;
2333
2333
}
2334
2334
2335
2335
multiclass bmi_bls<string mnemonic, Format RegMRM, Format MemMRM,
0 commit comments