[llvm] r343701 - [X86][Btver2] Fix MMX PSHUFB schedule

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 3 11:18:51 PDT 2018


Author: rksimon
Date: Wed Oct  3 11:18:50 2018
New Revision: 343701

URL: http://llvm.org/viewvc/llvm-project?rev=343701&view=rev
Log:
[X86][Btver2] Fix MMX PSHUFB schedule

Match AMD Fam16h SOG + llvm-exegesis tests

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

Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=343701&r1=343700&r2=343701&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Wed Oct  3 11:18:50 2018
@@ -500,7 +500,7 @@ defm : JWriteResFpuPair<WriteShuffle,
 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>;

Modified: llvm/trunk/test/CodeGen/X86/mmx-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-schedule.ll?rev=343701&r1=343700&r2=343701&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/mmx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/mmx-schedule.ll Wed Oct  3 11:18:50 2018
@@ -4715,8 +4715,8 @@ define i64 @test_pshufb(x86_mmx %a0, x86
 ;
 ; 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]
 ;

Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s?rev=343701&r1=343700&r2=343701&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s Wed Oct  3 11:18:50 2018
@@ -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




More information about the llvm-commits mailing list