forked from OSchip/llvm-project
[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.
This commit is contained in:
parent
acb459574a
commit
8e7f6039fa
|
@ -396,8 +396,8 @@ defm : X86WriteResPairUnsupported<WriteVecLogicZ>;
|
|||
defm : X86WriteResPairUnsupported<WriteVecTest>;
|
||||
defm : X86WriteResPairUnsupported<WriteVecTestY>;
|
||||
defm : X86WriteResPairUnsupported<WriteVecTestZ>;
|
||||
defm : AtomWriteResPair<WriteVecShift, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2]>;
|
||||
defm : AtomWriteResPair<WriteVecShiftX, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2]>;
|
||||
defm : AtomWriteResPair<WriteVecShift, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2], 2, 3>;
|
||||
defm : AtomWriteResPair<WriteVecShiftX, [AtomPort0,AtomPort1], [AtomPort0,AtomPort1], 2, 3, [1,1], [2,2], 2, 3>;
|
||||
defm : X86WriteResPairUnsupported<WriteVecShiftY>;
|
||||
defm : X86WriteResPairUnsupported<WriteVecShiftZ>;
|
||||
defm : AtomWriteResPair<WriteVecShiftImm, [AtomPort0], [AtomPort0], 1, 1>;
|
||||
|
|
|
@ -218,29 +218,29 @@ pxor (%rax), %mm2
|
|||
# CHECK-NEXT: 1 1 0.50 por %mm0, %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 * por (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 pslld $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 pslld %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * pslld (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 pslld %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * pslld (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psllq $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psllq %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psllq (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psllq %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psllq (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psllw $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psllw %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psllw (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psllw %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psllw (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrad $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrad %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrad (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrad %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrad (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psraw $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psraw %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psraw (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psraw %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psraw (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrld $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrld %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrld (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrld %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrld (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrlq $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrlq %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrlq (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrlq %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrlq (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrlw $1, %mm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrlw %mm0, %mm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrlw (%rax), %mm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrlw %mm0, %mm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrlw (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 0.50 psubb %mm0, %mm2
|
||||
# CHECK-NEXT: 1 1 1.00 * psubb (%rax), %mm2
|
||||
# CHECK-NEXT: 1 1 0.50 psubd %mm0, %mm2
|
||||
|
|
|
@ -595,31 +595,31 @@ xorpd (%rax), %xmm2
|
|||
# CHECK-NEXT: 1 1 1.00 pshuflw $1, %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 * pshuflw $1, (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 pslld %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * pslld (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * pslld (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psllq %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psllq (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psllq (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psllw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psllw (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psllw (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrad %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrad (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrad (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psraw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psraw (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psraw (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrld %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrld (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrld (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrlq %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrlq (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrlq (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2
|
||||
# CHECK-NEXT: 1 2 1.00 psrlw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 3 2.00 * psrlw (%rax), %xmm2
|
||||
# CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2
|
||||
# CHECK-NEXT: 3 3 2.00 * psrlw (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 0.50 psubb %xmm0, %xmm2
|
||||
# CHECK-NEXT: 1 1 1.00 * psubb (%rax), %xmm2
|
||||
# CHECK-NEXT: 1 1 0.50 psubd %xmm0, %xmm2
|
||||
|
|
Loading…
Reference in New Issue