diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-18 13:05:09 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-18 13:05:09 +0000 |
commit | 40f6d6ad0bee6d2c610d24fdbe8bd9076ea033f9 (patch) | |
tree | b0ef4646ce32f6222c4fafe652fde5e28adc4aed | |
parent | e16790b1337de7cb93f7a14abb169fa97af350d5 (diff) | |
download | bcm5719-llvm-40f6d6ad0bee6d2c610d24fdbe8bd9076ea033f9.tar.gz bcm5719-llvm-40f6d6ad0bee6d2c610d24fdbe8bd9076ea033f9.zip |
[X86][Btver2] SSE4A EXTRQ/INSERTQ instructions are performed on the JVALU0/JVALU1 functional pipes
llvm-svn: 327794
-rw-r--r-- | llvm/lib/Target/X86/X86ScheduleBtVer2.td | 8 | ||||
-rw-r--r-- | llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s | 8 |
2 files changed, 7 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td index c9321c9ff68..302dc120360 100644 --- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td +++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td @@ -403,15 +403,13 @@ def : InstRW<[JWriteDPPDLd], (instrs DPPDrmi, VDPPDrmi)>; // SSE4A instructions. //////////////////////////////////////////////////////////////////////////////// -def JWriteEXTRQ: SchedWriteRes<[JFPU01]> { - let Latency = 1; - let ResourceCycles = [1]; +def JWriteEXTRQ: SchedWriteRes<[JFPU01, JVALU]> { } def : InstRW<[JWriteEXTRQ], (instrs EXTRQ, EXTRQI)>; -def JWriteINSERTQ: SchedWriteRes<[JFPU01]> { +def JWriteINSERTQ: SchedWriteRes<[JFPU01, JVALU]> { let Latency = 2; - let ResourceCycles = [4]; + let ResourceCycles = [1, 4]; } def : InstRW<[JWriteINSERTQ], (instrs INSERTQ, INSERTQI)>; diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s index a14983c4e7e..091f173db56 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s @@ -27,9 +27,9 @@ movntss %xmm0, (%rax) # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: -# CHECK-NEXT: - - - - - 0.49 0.51 - - - - - - - extrq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - extrq $22, $2, %xmm2 -# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - insertq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - insertq $22, $22, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.49 0.51 - extrq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - extrq $22, $2, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 2.00 2.00 - insertq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 2.00 2.00 - insertq $22, $22, %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntsd %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntss %xmm0, (%rax) |