Skip to content

Commit 2b6bd31

Browse files
authored
[X86] Add mayLoad/mayStore to legacy instructions CMPS/LODS/MOVS/SCAS/STOS (llvm#185689)
When LLVM is used to disassemble instructions, legacy X86 strings instructions doesn't report memory access with mayLoad and mayStore. Note that INS and OUTS may also need sush flags, but I'm not totally sure which one.
1 parent 776589a commit 2b6bd31

20 files changed

Lines changed: 391 additions & 391 deletions

File tree

llvm/lib/Target/X86/X86InstrMisc.td

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ def BSR64rm : RI<0xBD, MRMSrcMem, (outs GR64:$dst), (ins GR64:$fallback, i64mem
300300
} // Defs = [EFLAGS]
301301

302302
let SchedRW = [WriteMicrocoded] in {
303-
let Defs = [EDI,ESI], Uses = [EDI,ESI,DF] in {
303+
let Defs = [EDI,ESI], Uses = [EDI,ESI,DF], mayLoad = 1, mayStore = 1 in {
304304
def MOVSB : I<0xA4, RawFrmDstSrc, (outs), (ins dstidx8:$dst, srcidx8:$src),
305305
"movsb\t{$src, $dst|$dst, $src}", []>;
306306
def MOVSW : I<0xA5, RawFrmDstSrc, (outs), (ins dstidx16:$dst, srcidx16:$src),
@@ -312,35 +312,35 @@ def MOVSQ : RI<0xA5, RawFrmDstSrc, (outs), (ins dstidx64:$dst, srcidx64:$src),
312312
Requires<[In64BitMode]>;
313313
}
314314

315-
let Defs = [EDI], Uses = [AL,EDI,DF] in
315+
let Defs = [EDI], Uses = [AL,EDI,DF], mayStore = 1 in
316316
def STOSB : I<0xAA, RawFrmDst, (outs), (ins dstidx8:$dst),
317317
"stosb\t{%al, $dst|$dst, al}", []>;
318-
let Defs = [EDI], Uses = [AX,EDI,DF] in
318+
let Defs = [EDI], Uses = [AX,EDI,DF], mayStore = 1 in
319319
def STOSW : I<0xAB, RawFrmDst, (outs), (ins dstidx16:$dst),
320320
"stosw\t{%ax, $dst|$dst, ax}", []>, OpSize16;
321-
let Defs = [EDI], Uses = [EAX,EDI,DF] in
321+
let Defs = [EDI], Uses = [EAX,EDI,DF], mayStore = 1 in
322322
def STOSL : I<0xAB, RawFrmDst, (outs), (ins dstidx32:$dst),
323323
"stos{l|d}\t{%eax, $dst|$dst, eax}", []>, OpSize32;
324-
let Defs = [RDI], Uses = [RAX,RDI,DF] in
324+
let Defs = [RDI], Uses = [RAX,RDI,DF], mayStore = 1 in
325325
def STOSQ : RI<0xAB, RawFrmDst, (outs), (ins dstidx64:$dst),
326326
"stosq\t{%rax, $dst|$dst, rax}", []>,
327327
Requires<[In64BitMode]>;
328328

329-
let Defs = [EDI,EFLAGS], Uses = [AL,EDI,DF] in
329+
let Defs = [EDI,EFLAGS], Uses = [AL,EDI,DF], mayLoad = 1 in
330330
def SCASB : I<0xAE, RawFrmDst, (outs), (ins dstidx8:$dst),
331331
"scasb\t{$dst, %al|al, $dst}", []>;
332-
let Defs = [EDI,EFLAGS], Uses = [AX,EDI,DF] in
332+
let Defs = [EDI,EFLAGS], Uses = [AX,EDI,DF], mayLoad = 1 in
333333
def SCASW : I<0xAF, RawFrmDst, (outs), (ins dstidx16:$dst),
334334
"scasw\t{$dst, %ax|ax, $dst}", []>, OpSize16;
335-
let Defs = [EDI,EFLAGS], Uses = [EAX,EDI,DF] in
335+
let Defs = [EDI,EFLAGS], Uses = [EAX,EDI,DF], mayLoad = 1 in
336336
def SCASL : I<0xAF, RawFrmDst, (outs), (ins dstidx32:$dst),
337337
"scas{l|d}\t{$dst, %eax|eax, $dst}", []>, OpSize32;
338-
let Defs = [EDI,EFLAGS], Uses = [RAX,EDI,DF] in
338+
let Defs = [EDI,EFLAGS], Uses = [RAX,EDI,DF], mayLoad = 1 in
339339
def SCASQ : RI<0xAF, RawFrmDst, (outs), (ins dstidx64:$dst),
340340
"scasq\t{$dst, %rax|rax, $dst}", []>,
341341
Requires<[In64BitMode]>;
342342

343-
let Defs = [EDI,ESI,EFLAGS], Uses = [EDI,ESI,DF] in {
343+
let Defs = [EDI,ESI,EFLAGS], Uses = [EDI,ESI,DF], mayLoad = 1 in {
344344
def CMPSB : I<0xA6, RawFrmDstSrc, (outs), (ins dstidx8:$dst, srcidx8:$src),
345345
"cmpsb\t{$dst, $src|$src, $dst}", []>;
346346
def CMPSW : I<0xA7, RawFrmDstSrc, (outs), (ins dstidx16:$dst, srcidx16:$src),
@@ -982,7 +982,7 @@ def REPNE_PREFIX : I<0xF2, PrefixByte, (outs), (ins), "repne", []>;
982982
}
983983

984984
// String manipulation instructions
985-
let SchedRW = [WriteMicrocoded] in {
985+
let SchedRW = [WriteMicrocoded], mayLoad = 1 in {
986986
let Defs = [AL,ESI], Uses = [ESI,DF] in
987987
def LODSB : I<0xAC, RawFrmSrc, (outs), (ins srcidx8:$src),
988988
"lodsb\t{$src, %al|al, $src}", []>;

llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,10 +1292,10 @@ xorq (%rax), %rdi
12921292
# CHECK-NEXT: 1 1 0.20 cmpq %rsi, %rdi
12931293
# CHECK-NEXT: 2 6 0.33 * cmpq %rsi, (%rax)
12941294
# CHECK-NEXT: 2 6 0.33 * cmpq (%rax), %rdi
1295-
# CHECK-NEXT: 7 6 1.00 U cmpsb %es:(%rdi), (%rsi)
1296-
# CHECK-NEXT: 7 6 1.00 U cmpsw %es:(%rdi), (%rsi)
1297-
# CHECK-NEXT: 7 6 1.00 U cmpsl %es:(%rdi), (%rsi)
1298-
# CHECK-NEXT: 7 6 1.00 U cmpsq %es:(%rdi), (%rsi)
1295+
# CHECK-NEXT: 7 6 1.00 * U cmpsb %es:(%rdi), (%rsi)
1296+
# CHECK-NEXT: 7 6 1.00 * U cmpsw %es:(%rdi), (%rsi)
1297+
# CHECK-NEXT: 7 6 1.00 * U cmpsl %es:(%rdi), (%rsi)
1298+
# CHECK-NEXT: 7 6 1.00 * U cmpsq %es:(%rdi), (%rsi)
12991299
# CHECK-NEXT: 5 3 1.00 cmpxchgb %cl, %bl
13001300
# CHECK-NEXT: 6 13 1.00 * * cmpxchgb %cl, (%rbx)
13011301
# CHECK-NEXT: 6 13 1.00 * * lock cmpxchgb %cl, (%rbx)
@@ -1390,17 +1390,17 @@ xorq (%rax), %rdi
13901390
# CHECK-NEXT: 1 100 0.25 U invlpga
13911391
# CHECK-NEXT: 1 3 0.50 lahf
13921392
# CHECK-NEXT: 3 6 0.40 * leave
1393-
# CHECK-NEXT: 4 6 0.60 U lodsb (%rsi), %al
1394-
# CHECK-NEXT: 4 6 0.60 U lodsw (%rsi), %ax
1395-
# CHECK-NEXT: 3 5 0.40 U lodsl (%rsi), %eax
1396-
# CHECK-NEXT: 3 5 0.40 U lodsq (%rsi), %rax
1393+
# CHECK-NEXT: 4 6 0.60 * U lodsb (%rsi), %al
1394+
# CHECK-NEXT: 4 6 0.60 * U lodsw (%rsi), %ax
1395+
# CHECK-NEXT: 3 5 0.40 * U lodsl (%rsi), %eax
1396+
# CHECK-NEXT: 3 5 0.40 * U lodsq (%rsi), %rax
13971397
# CHECK-NEXT: 7 3 2.00 U loop 0
13981398
# CHECK-NEXT: 11 3 3.00 U loope 0
13991399
# CHECK-NEXT: 11 2 3.00 U loopne 0
1400-
# CHECK-NEXT: 7 8 0.80 U movsb (%rsi), %es:(%rdi)
1401-
# CHECK-NEXT: 7 7 0.80 U movsw (%rsi), %es:(%rdi)
1402-
# CHECK-NEXT: 7 7 0.80 U movsl (%rsi), %es:(%rdi)
1403-
# CHECK-NEXT: 7 7 0.80 U movsq (%rsi), %es:(%rdi)
1400+
# CHECK-NEXT: 7 8 0.80 * * U movsb (%rsi), %es:(%rdi)
1401+
# CHECK-NEXT: 7 7 0.80 * * U movsw (%rsi), %es:(%rdi)
1402+
# CHECK-NEXT: 7 7 0.80 * * U movsl (%rsi), %es:(%rdi)
1403+
# CHECK-NEXT: 7 7 0.80 * * U movsq (%rsi), %es:(%rdi)
14041404
# CHECK-NEXT: 1 1 0.33 movsbw %al, %di
14051405
# CHECK-NEXT: 1 1 0.20 movzbw %al, %di
14061406
# CHECK-NEXT: 2 6 0.33 * movsbw (%rax), %di
@@ -1743,10 +1743,10 @@ xorq (%rax), %rdi
17431743
# CHECK-NEXT: 6 12 0.60 * * sbbq %rsi, (%rax)
17441744
# CHECK-NEXT: 6 12 0.60 * * lock sbbq %rsi, (%rax)
17451745
# CHECK-NEXT: 2 6 0.50 * sbbq (%rax), %rdi
1746-
# CHECK-NEXT: 4 6 0.60 U scasb %es:(%rdi), %al
1747-
# CHECK-NEXT: 4 6 0.60 U scasw %es:(%rdi), %ax
1748-
# CHECK-NEXT: 4 6 0.60 U scasl %es:(%rdi), %eax
1749-
# CHECK-NEXT: 4 6 0.60 U scasq %es:(%rdi), %rax
1746+
# CHECK-NEXT: 4 6 0.60 * U scasb %es:(%rdi), %al
1747+
# CHECK-NEXT: 4 6 0.60 * U scasw %es:(%rdi), %ax
1748+
# CHECK-NEXT: 4 6 0.60 * U scasl %es:(%rdi), %eax
1749+
# CHECK-NEXT: 4 6 0.60 * U scasq %es:(%rdi), %rax
17501750
# CHECK-NEXT: 2 2 1.00 seto %al
17511751
# CHECK-NEXT: 4 13 1.00 * seto (%rax)
17521752
# CHECK-NEXT: 2 2 1.00 setno %al
@@ -1805,10 +1805,10 @@ xorq (%rax), %rdi
18051805
# CHECK-NEXT: 5 12 1.00 * * shrdq $7, %rsi, (%rax)
18061806
# CHECK-NEXT: 1 1 0.20 U stc
18071807
# CHECK-NEXT: 2 6 0.50 U std
1808-
# CHECK-NEXT: 4 8 0.50 U stosb %al, %es:(%rdi)
1809-
# CHECK-NEXT: 4 7 0.50 U stosw %ax, %es:(%rdi)
1810-
# CHECK-NEXT: 4 7 0.50 U stosl %eax, %es:(%rdi)
1811-
# CHECK-NEXT: 4 7 0.50 U stosq %rax, %es:(%rdi)
1808+
# CHECK-NEXT: 4 8 0.50 * U stosb %al, %es:(%rdi)
1809+
# CHECK-NEXT: 4 7 0.50 * U stosw %ax, %es:(%rdi)
1810+
# CHECK-NEXT: 4 7 0.50 * U stosl %eax, %es:(%rdi)
1811+
# CHECK-NEXT: 4 7 0.50 * U stosq %rax, %es:(%rdi)
18121812
# CHECK-NEXT: 1 1 0.20 subb $7, %al
18131813
# CHECK-NEXT: 1 1 0.20 subb $7, %dil
18141814
# CHECK-NEXT: 4 13 0.50 * * subb $7, (%rax)

llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,10 +1292,10 @@ xorq (%rax), %rdi
12921292
# CHECK-NEXT: 1 1 0.50 cmpq %rsi, %rdi
12931293
# CHECK-NEXT: 1 1 1.00 * cmpq %rsi, (%rax)
12941294
# CHECK-NEXT: 1 1 1.00 * cmpq (%rax), %rdi
1295-
# CHECK-NEXT: 1 3 1.50 U cmpsb %es:(%rdi), (%rsi)
1296-
# CHECK-NEXT: 1 3 1.50 U cmpsw %es:(%rdi), (%rsi)
1297-
# CHECK-NEXT: 1 3 1.50 U cmpsl %es:(%rdi), (%rsi)
1298-
# CHECK-NEXT: 1 3 1.50 U cmpsq %es:(%rdi), (%rsi)
1295+
# CHECK-NEXT: 1 3 1.50 * U cmpsb %es:(%rdi), (%rsi)
1296+
# CHECK-NEXT: 1 3 1.50 * U cmpsw %es:(%rdi), (%rsi)
1297+
# CHECK-NEXT: 1 3 1.50 * U cmpsl %es:(%rdi), (%rsi)
1298+
# CHECK-NEXT: 1 3 1.50 * U cmpsq %es:(%rdi), (%rsi)
12991299
# CHECK-NEXT: 1 9 4.50 cmpxchgb %cl, %bl
13001300
# CHECK-NEXT: 1 6 3.00 * * cmpxchgb %cl, (%rbx)
13011301
# CHECK-NEXT: 1 6 3.00 * * lock cmpxchgb %cl, (%rbx)
@@ -1390,17 +1390,17 @@ xorq (%rax), %rdi
13901390
# CHECK-NEXT: 1 71 35.50 U invlpga
13911391
# CHECK-NEXT: 1 2 1.00 lahf
13921392
# CHECK-NEXT: 1 2 1.00 * leave
1393-
# CHECK-NEXT: 1 2 1.00 U lodsb (%rsi), %al
1394-
# CHECK-NEXT: 1 2 1.00 U lodsw (%rsi), %ax
1395-
# CHECK-NEXT: 1 2 1.00 U lodsl (%rsi), %eax
1396-
# CHECK-NEXT: 1 2 1.00 U lodsq (%rsi), %rax
1393+
# CHECK-NEXT: 1 2 1.00 * U lodsb (%rsi), %al
1394+
# CHECK-NEXT: 1 2 1.00 * U lodsw (%rsi), %ax
1395+
# CHECK-NEXT: 1 2 1.00 * U lodsl (%rsi), %eax
1396+
# CHECK-NEXT: 1 2 1.00 * U lodsq (%rsi), %rax
13971397
# CHECK-NEXT: 1 18 9.00 U loop 0
13981398
# CHECK-NEXT: 1 8 4.00 U loope 0
13991399
# CHECK-NEXT: 1 17 8.50 U loopne 0
1400-
# CHECK-NEXT: 1 3 1.50 U movsb (%rsi), %es:(%rdi)
1401-
# CHECK-NEXT: 1 3 1.50 U movsw (%rsi), %es:(%rdi)
1402-
# CHECK-NEXT: 1 3 1.50 U movsl (%rsi), %es:(%rdi)
1403-
# CHECK-NEXT: 1 3 1.50 U movsq (%rsi), %es:(%rdi)
1400+
# CHECK-NEXT: 1 3 1.50 * * U movsb (%rsi), %es:(%rdi)
1401+
# CHECK-NEXT: 1 3 1.50 * * U movsw (%rsi), %es:(%rdi)
1402+
# CHECK-NEXT: 1 3 1.50 * * U movsl (%rsi), %es:(%rdi)
1403+
# CHECK-NEXT: 1 3 1.50 * * U movsq (%rsi), %es:(%rdi)
14041404
# CHECK-NEXT: 1 2 1.00 movsbw %al, %di
14051405
# CHECK-NEXT: 1 2 1.00 movzbw %al, %di
14061406
# CHECK-NEXT: 1 3 1.50 * movsbw (%rax), %di
@@ -1743,10 +1743,10 @@ xorq (%rax), %rdi
17431743
# CHECK-NEXT: 1 1 1.00 * * sbbq %rsi, (%rax)
17441744
# CHECK-NEXT: 1 1 1.00 * * lock sbbq %rsi, (%rax)
17451745
# CHECK-NEXT: 1 1 1.00 * sbbq (%rax), %rdi
1746-
# CHECK-NEXT: 1 2 1.00 U scasb %es:(%rdi), %al
1747-
# CHECK-NEXT: 1 2 1.00 U scasw %es:(%rdi), %ax
1748-
# CHECK-NEXT: 1 2 1.00 U scasl %es:(%rdi), %eax
1749-
# CHECK-NEXT: 1 2 1.00 U scasq %es:(%rdi), %rax
1746+
# CHECK-NEXT: 1 2 1.00 * U scasb %es:(%rdi), %al
1747+
# CHECK-NEXT: 1 2 1.00 * U scasw %es:(%rdi), %ax
1748+
# CHECK-NEXT: 1 2 1.00 * U scasl %es:(%rdi), %eax
1749+
# CHECK-NEXT: 1 2 1.00 * U scasq %es:(%rdi), %rax
17501750
# CHECK-NEXT: 1 1 0.50 seto %al
17511751
# CHECK-NEXT: 1 2 1.00 * seto (%rax)
17521752
# CHECK-NEXT: 1 1 0.50 setno %al
@@ -1805,10 +1805,10 @@ xorq (%rax), %rdi
18051805
# CHECK-NEXT: 1 9 4.50 * * shrdq $7, %rsi, (%rax)
18061806
# CHECK-NEXT: 1 1 0.50 U stc
18071807
# CHECK-NEXT: 1 21 10.50 U std
1808-
# CHECK-NEXT: 1 1 0.50 U stosb %al, %es:(%rdi)
1809-
# CHECK-NEXT: 1 1 0.50 U stosw %ax, %es:(%rdi)
1810-
# CHECK-NEXT: 1 1 0.50 U stosl %eax, %es:(%rdi)
1811-
# CHECK-NEXT: 1 1 0.50 U stosq %rax, %es:(%rdi)
1808+
# CHECK-NEXT: 1 1 0.50 * U stosb %al, %es:(%rdi)
1809+
# CHECK-NEXT: 1 1 0.50 * U stosw %ax, %es:(%rdi)
1810+
# CHECK-NEXT: 1 1 0.50 * U stosl %eax, %es:(%rdi)
1811+
# CHECK-NEXT: 1 1 0.50 * U stosq %rax, %es:(%rdi)
18121812
# CHECK-NEXT: 1 1 0.50 subb $7, %al
18131813
# CHECK-NEXT: 1 1 0.50 subb $7, %dil
18141814
# CHECK-NEXT: 1 1 1.00 * * subb $7, (%rax)

llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,10 +1292,10 @@ xorq (%rax), %rdi
12921292
# CHECK-NEXT: 1 1 0.33 cmpq %rsi, %rdi
12931293
# CHECK-NEXT: 2 6 0.50 * cmpq %rsi, (%rax)
12941294
# CHECK-NEXT: 2 6 0.50 * cmpq (%rax), %rdi
1295-
# CHECK-NEXT: 5 8 1.00 U cmpsb %es:(%rdi), (%rsi)
1296-
# CHECK-NEXT: 5 8 1.00 U cmpsw %es:(%rdi), (%rsi)
1297-
# CHECK-NEXT: 5 8 1.00 U cmpsl %es:(%rdi), (%rsi)
1298-
# CHECK-NEXT: 5 8 1.00 U cmpsq %es:(%rdi), (%rsi)
1295+
# CHECK-NEXT: 5 8 1.00 * U cmpsb %es:(%rdi), (%rsi)
1296+
# CHECK-NEXT: 5 8 1.00 * U cmpsw %es:(%rdi), (%rsi)
1297+
# CHECK-NEXT: 5 8 1.00 * U cmpsl %es:(%rdi), (%rsi)
1298+
# CHECK-NEXT: 5 8 1.00 * U cmpsq %es:(%rdi), (%rsi)
12991299
# CHECK-NEXT: 4 5 1.33 cmpxchgb %cl, %bl
13001300
# CHECK-NEXT: 6 8 2.00 * * cmpxchgb %cl, (%rbx)
13011301
# CHECK-NEXT: 6 8 2.00 * * lock cmpxchgb %cl, (%rbx)
@@ -1390,17 +1390,17 @@ xorq (%rax), %rdi
13901390
# CHECK-NEXT: 1 100 0.33 U invlpga
13911391
# CHECK-NEXT: 1 1 0.50 lahf
13921392
# CHECK-NEXT: 3 7 0.67 * leave
1393-
# CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al
1394-
# CHECK-NEXT: 3 7 0.67 U lodsw (%rsi), %ax
1395-
# CHECK-NEXT: 2 6 0.50 U lodsl (%rsi), %eax
1396-
# CHECK-NEXT: 2 6 0.50 U lodsq (%rsi), %rax
1393+
# CHECK-NEXT: 3 7 0.67 * U lodsb (%rsi), %al
1394+
# CHECK-NEXT: 3 7 0.67 * U lodsw (%rsi), %ax
1395+
# CHECK-NEXT: 2 6 0.50 * U lodsl (%rsi), %eax
1396+
# CHECK-NEXT: 2 6 0.50 * U lodsq (%rsi), %rax
13971397
# CHECK-NEXT: 8 3 3.00 U loop 0
13981398
# CHECK-NEXT: 12 4 4.00 U loope 0
13991399
# CHECK-NEXT: 12 4 4.00 U loopne 0
1400-
# CHECK-NEXT: 5 8 1.00 U movsb (%rsi), %es:(%rdi)
1401-
# CHECK-NEXT: 5 8 1.00 U movsw (%rsi), %es:(%rdi)
1402-
# CHECK-NEXT: 5 8 1.00 U movsl (%rsi), %es:(%rdi)
1403-
# CHECK-NEXT: 5 8 1.00 U movsq (%rsi), %es:(%rdi)
1400+
# CHECK-NEXT: 5 8 1.00 * * U movsb (%rsi), %es:(%rdi)
1401+
# CHECK-NEXT: 5 8 1.00 * * U movsw (%rsi), %es:(%rdi)
1402+
# CHECK-NEXT: 5 8 1.00 * * U movsl (%rsi), %es:(%rdi)
1403+
# CHECK-NEXT: 5 8 1.00 * * U movsq (%rsi), %es:(%rdi)
14041404
# CHECK-NEXT: 1 1 0.33 movsbw %al, %di
14051405
# CHECK-NEXT: 1 1 0.33 movzbw %al, %di
14061406
# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di
@@ -1743,10 +1743,10 @@ xorq (%rax), %rdi
17431743
# CHECK-NEXT: 4 9 1.00 * * sbbq %rsi, (%rax)
17441744
# CHECK-NEXT: 4 9 1.00 * * lock sbbq %rsi, (%rax)
17451745
# CHECK-NEXT: 3 7 0.67 * sbbq (%rax), %rdi
1746-
# CHECK-NEXT: 2 2 0.67 U scasb %es:(%rdi), %al
1747-
# CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax
1748-
# CHECK-NEXT: 2 2 0.67 U scasl %es:(%rdi), %eax
1749-
# CHECK-NEXT: 2 2 0.67 U scasq %es:(%rdi), %rax
1746+
# CHECK-NEXT: 2 2 0.67 * U scasb %es:(%rdi), %al
1747+
# CHECK-NEXT: 2 2 0.67 * U scasw %es:(%rdi), %ax
1748+
# CHECK-NEXT: 2 2 0.67 * U scasl %es:(%rdi), %eax
1749+
# CHECK-NEXT: 2 2 0.67 * U scasq %es:(%rdi), %rax
17501750
# CHECK-NEXT: 1 1 0.50 seto %al
17511751
# CHECK-NEXT: 3 2 1.00 * seto (%rax)
17521752
# CHECK-NEXT: 1 1 0.50 setno %al
@@ -1805,10 +1805,10 @@ xorq (%rax), %rdi
18051805
# CHECK-NEXT: 5 8 1.00 * * shrdq $7, %rsi, (%rax)
18061806
# CHECK-NEXT: 1 1 0.33 U stc
18071807
# CHECK-NEXT: 1 1 0.33 U std
1808-
# CHECK-NEXT: 3 5 1.00 U stosb %al, %es:(%rdi)
1809-
# CHECK-NEXT: 3 5 1.00 U stosw %ax, %es:(%rdi)
1810-
# CHECK-NEXT: 3 5 1.00 U stosl %eax, %es:(%rdi)
1811-
# CHECK-NEXT: 3 5 1.00 U stosq %rax, %es:(%rdi)
1808+
# CHECK-NEXT: 3 5 1.00 * U stosb %al, %es:(%rdi)
1809+
# CHECK-NEXT: 3 5 1.00 * U stosw %ax, %es:(%rdi)
1810+
# CHECK-NEXT: 3 5 1.00 * U stosl %eax, %es:(%rdi)
1811+
# CHECK-NEXT: 3 5 1.00 * U stosq %rax, %es:(%rdi)
18121812
# CHECK-NEXT: 1 1 0.33 subb $7, %al
18131813
# CHECK-NEXT: 1 1 0.33 subb $7, %dil
18141814
# CHECK-NEXT: 3 7 1.00 * * subb $7, (%rax)

0 commit comments

Comments
 (0)