OSDN Git Service

[X86][Btver2] Fix MMX PSHUFB schedule
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 3 Oct 2018 18:18:50 +0000 (18:18 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 3 Oct 2018 18:18:50 +0000 (18:18 +0000)
Match AMD Fam16h SOG + llvm-exegesis tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343701 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ScheduleBtVer2.td
test/CodeGen/X86/mmx-schedule.ll
test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s

index b807fa5..8f7d8f7 100644 (file)
@@ -500,7 +500,7 @@ defm : JWriteResFpuPair<WriteShuffle,     [JFPU01, JVALU], 1>;
 defm : JWriteResFpuPair<WriteShuffleX,    [JFPU01, JVALU], 1>;
 defm : X86WriteResPairUnsupported<WriteShuffleY>;
 defm : X86WriteResPairUnsupported<WriteShuffleZ>;
-defm : JWriteResFpuPair<WriteVarShuffle,  [JFPU01, JVALU], 2, [1, 4], 3>;
+defm : JWriteResFpuPair<WriteVarShuffle,  [JFPU01, JVALU], 2, [1, 1], 1>;
 defm : JWriteResFpuPair<WriteVarShuffleX, [JFPU01, JVALU], 2, [1, 4], 3>;
 defm : X86WriteResPairUnsupported<WriteVarShuffleY>;
 defm : X86WriteResPairUnsupported<WriteVarShuffleZ>;
index ac87a55..f4e047c 100644 (file)
@@ -4715,8 +4715,8 @@ define i64 @test_pshufb(x86_mmx %a0, x86_mmx %a1, x86_mmx *%a2) optsize {
 ;
 ; BTVER2-LABEL: test_pshufb:
 ; BTVER2:       # %bb.0:
-; BTVER2-NEXT:    pshufb %mm1, %mm0 # sched: [2:2.00]
-; BTVER2-NEXT:    pshufb (%rdi), %mm0 # sched: [7:2.00]
+; BTVER2-NEXT:    pshufb %mm1, %mm0 # sched: [2:0.50]
+; BTVER2-NEXT:    pshufb (%rdi), %mm0 # sched: [7:1.00]
 ; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
index 4c9717e..ff7ff3f 100644 (file)
@@ -154,8 +154,8 @@ psignw      (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   pmulhrsw       (%rax), %mm2
 # CHECK-NEXT:  1      2     1.00                        pmulhrsw       %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   pmulhrsw       (%rax), %xmm2
-# CHECK-NEXT:  3      2     2.00                        pshufb %mm0, %mm2
-# CHECK-NEXT:  3      7     2.00    *                   pshufb (%rax), %mm2
+# CHECK-NEXT:  1      2     0.50                        pshufb %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                   pshufb (%rax), %mm2
 # CHECK-NEXT:  3      2     2.00                        pshufb %xmm0, %xmm2
 # CHECK-NEXT:  3      7     2.00    *                   pshufb (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        psignb %mm0, %mm2
@@ -189,7 +189,7 @@ psignw      (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT:  -      -      -      -      -     36.00  28.00  32.00   -      -      -     34.00  34.00  8.00
+# CHECK-NEXT:  -      -      -      -      -     36.00  28.00  32.00   -      -      -     31.00  31.00  8.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -241,8 +241,8 @@ psignw      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00   pmulhrsw       (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00   pmulhrsw       %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00   pmulhrsw       (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     2.00   2.00    -     pshufb %mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     2.00   2.00    -     pshufb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     pshufb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     pshufb (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     2.00   2.00    -     pshufb %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     2.00   2.00    -     pshufb (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     psignb %mm0, %mm2