Skip to content

Commit 4032728

Browse files
RKSimonmemfrob
authored andcommitted
[X86] Atom SSE shift-by-variable take 2uops/3uops not 1uop
Based off the most recent llvm-exegesis captures (PR36895) and what Intel AoM / Agner / InstLatX64 reports as well.
1 parent 4668857 commit 4032728

File tree

3 files changed

+34
-34
lines changed

3 files changed

+34
-34
lines changed

llvm/lib/Target/X86/X86ScheduleAtom.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,8 +396,8 @@ defm : X86WriteResPairUnsupported<WriteVecLogicZ>;
396396
defm : X86WriteResPairUnsupported<WriteVecTest>;
397397
defm : X86WriteResPairUnsupported<WriteVecTestY>;
398398
defm : X86WriteResPairUnsupported<WriteVecTestZ>;
399-
defm : AtomWriteResPair<WriteVecShift, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2]>;
400-
defm : AtomWriteResPair<WriteVecShiftX, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2]>;
399+
defm : AtomWriteResPair<WriteVecShift, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2], 2, 3>;
400+
defm : AtomWriteResPair<WriteVecShiftX, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2], 2, 3>;
401401
defm : X86WriteResPairUnsupported<WriteVecShiftY>;
402402
defm : X86WriteResPairUnsupported<WriteVecShiftZ>;
403403
defm : AtomWriteResPair<WriteVecShiftImm, [AtomPort0], [AtomPort0], 1, 1>;

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -218,29 +218,29 @@ pxor (%rax), %mm2
218218
# CHECK-NEXT: 1 1 0.50 por %mm0, %mm2
219219
# CHECK-NEXT: 1 1 1.00 * por (%rax), %mm2
220220
# CHECK-NEXT: 1 1 1.00 pslld $1, %mm2
221-
# CHECK-NEXT: 1 2 1.00 pslld %mm0, %mm2
222-
# CHECK-NEXT: 1 3 2.00 * pslld (%rax), %mm2
221+
# CHECK-NEXT: 2 2 1.00 pslld %mm0, %mm2
222+
# CHECK-NEXT: 3 3 2.00 * pslld (%rax), %mm2
223223
# CHECK-NEXT: 1 1 1.00 psllq $1, %mm2
224-
# CHECK-NEXT: 1 2 1.00 psllq %mm0, %mm2
225-
# CHECK-NEXT: 1 3 2.00 * psllq (%rax), %mm2
224+
# CHECK-NEXT: 2 2 1.00 psllq %mm0, %mm2
225+
# CHECK-NEXT: 3 3 2.00 * psllq (%rax), %mm2
226226
# CHECK-NEXT: 1 1 1.00 psllw $1, %mm2
227-
# CHECK-NEXT: 1 2 1.00 psllw %mm0, %mm2
228-
# CHECK-NEXT: 1 3 2.00 * psllw (%rax), %mm2
227+
# CHECK-NEXT: 2 2 1.00 psllw %mm0, %mm2
228+
# CHECK-NEXT: 3 3 2.00 * psllw (%rax), %mm2
229229
# CHECK-NEXT: 1 1 1.00 psrad $1, %mm2
230-
# CHECK-NEXT: 1 2 1.00 psrad %mm0, %mm2
231-
# CHECK-NEXT: 1 3 2.00 * psrad (%rax), %mm2
230+
# CHECK-NEXT: 2 2 1.00 psrad %mm0, %mm2
231+
# CHECK-NEXT: 3 3 2.00 * psrad (%rax), %mm2
232232
# CHECK-NEXT: 1 1 1.00 psraw $1, %mm2
233-
# CHECK-NEXT: 1 2 1.00 psraw %mm0, %mm2
234-
# CHECK-NEXT: 1 3 2.00 * psraw (%rax), %mm2
233+
# CHECK-NEXT: 2 2 1.00 psraw %mm0, %mm2
234+
# CHECK-NEXT: 3 3 2.00 * psraw (%rax), %mm2
235235
# CHECK-NEXT: 1 1 1.00 psrld $1, %mm2
236-
# CHECK-NEXT: 1 2 1.00 psrld %mm0, %mm2
237-
# CHECK-NEXT: 1 3 2.00 * psrld (%rax), %mm2
236+
# CHECK-NEXT: 2 2 1.00 psrld %mm0, %mm2
237+
# CHECK-NEXT: 3 3 2.00 * psrld (%rax), %mm2
238238
# CHECK-NEXT: 1 1 1.00 psrlq $1, %mm2
239-
# CHECK-NEXT: 1 2 1.00 psrlq %mm0, %mm2
240-
# CHECK-NEXT: 1 3 2.00 * psrlq (%rax), %mm2
239+
# CHECK-NEXT: 2 2 1.00 psrlq %mm0, %mm2
240+
# CHECK-NEXT: 3 3 2.00 * psrlq (%rax), %mm2
241241
# CHECK-NEXT: 1 1 1.00 psrlw $1, %mm2
242-
# CHECK-NEXT: 1 2 1.00 psrlw %mm0, %mm2
243-
# CHECK-NEXT: 1 3 2.00 * psrlw (%rax), %mm2
242+
# CHECK-NEXT: 2 2 1.00 psrlw %mm0, %mm2
243+
# CHECK-NEXT: 3 3 2.00 * psrlw (%rax), %mm2
244244
# CHECK-NEXT: 1 1 0.50 psubb %mm0, %mm2
245245
# CHECK-NEXT: 1 1 1.00 * psubb (%rax), %mm2
246246
# CHECK-NEXT: 1 1 0.50 psubd %mm0, %mm2

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -595,31 +595,31 @@ xorpd (%rax), %xmm2
595595
# CHECK-NEXT: 1 1 1.00 pshuflw $1, %xmm0, %xmm2
596596
# CHECK-NEXT: 1 1 1.00 * pshuflw $1, (%rax), %xmm2
597597
# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
598-
# CHECK-NEXT: 1 2 1.00 pslld %xmm0, %xmm2
599-
# CHECK-NEXT: 1 3 2.00 * pslld (%rax), %xmm2
598+
# CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2
599+
# CHECK-NEXT: 3 3 2.00 * pslld (%rax), %xmm2
600600
# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2
601601
# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
602-
# CHECK-NEXT: 1 2 1.00 psllq %xmm0, %xmm2
603-
# CHECK-NEXT: 1 3 2.00 * psllq (%rax), %xmm2
602+
# CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2
603+
# CHECK-NEXT: 3 3 2.00 * psllq (%rax), %xmm2
604604
# CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2
605-
# CHECK-NEXT: 1 2 1.00 psllw %xmm0, %xmm2
606-
# CHECK-NEXT: 1 3 2.00 * psllw (%rax), %xmm2
605+
# CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2
606+
# CHECK-NEXT: 3 3 2.00 * psllw (%rax), %xmm2
607607
# CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2
608-
# CHECK-NEXT: 1 2 1.00 psrad %xmm0, %xmm2
609-
# CHECK-NEXT: 1 3 2.00 * psrad (%rax), %xmm2
608+
# CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2
609+
# CHECK-NEXT: 3 3 2.00 * psrad (%rax), %xmm2
610610
# CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2
611-
# CHECK-NEXT: 1 2 1.00 psraw %xmm0, %xmm2
612-
# CHECK-NEXT: 1 3 2.00 * psraw (%rax), %xmm2
611+
# CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2
612+
# CHECK-NEXT: 3 3 2.00 * psraw (%rax), %xmm2
613613
# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
614-
# CHECK-NEXT: 1 2 1.00 psrld %xmm0, %xmm2
615-
# CHECK-NEXT: 1 3 2.00 * psrld (%rax), %xmm2
614+
# CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2
615+
# CHECK-NEXT: 3 3 2.00 * psrld (%rax), %xmm2
616616
# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2
617617
# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
618-
# CHECK-NEXT: 1 2 1.00 psrlq %xmm0, %xmm2
619-
# CHECK-NEXT: 1 3 2.00 * psrlq (%rax), %xmm2
618+
# CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2
619+
# CHECK-NEXT: 3 3 2.00 * psrlq (%rax), %xmm2
620620
# CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2
621-
# CHECK-NEXT: 1 2 1.00 psrlw %xmm0, %xmm2
622-
# CHECK-NEXT: 1 3 2.00 * psrlw (%rax), %xmm2
621+
# CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2
622+
# CHECK-NEXT: 3 3 2.00 * psrlw (%rax), %xmm2
623623
# CHECK-NEXT: 1 1 0.50 psubb %xmm0, %xmm2
624624
# CHECK-NEXT: 1 1 1.00 * psubb (%rax), %xmm2
625625
# CHECK-NEXT: 1 1 0.50 psubd %xmm0, %xmm2

0 commit comments

Comments
 (0)