"SHRD(16|32|64)rri8")>;
def SBWriteResGroup20 : SchedWriteRes<[SBPort0]> {
- let Latency = 3;
+ let Latency = 5;
let NumMicroOps = 1;
let ResourceCycles = [1];
}
def: InstRW<[SBWriteResGroup20], (instregex "MMX_PMADDUBSWrr",
+ "MMX_PMADDWDirr",
"MMX_PMULHRSWrr",
+ "MMX_PMULHUWirr",
+ "MMX_PMULHWirr",
+ "MMX_PMULLWirr",
"MMX_PMULUDQirr",
+ "MMX_PSADBWirr",
"(V?)PMADDUBSWrr",
"(V?)PMADDWDrr",
"(V?)PMULDQrr",
"(V?)MOVUPSmr")>;
def SBWriteResGroup34 : SchedWriteRes<[SBPort0,SBPort15]> {
- let Latency = 5;
+ let Latency = 7;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SBWriteResGroup71], (instregex "MMX_PMADDUBSWrm",
- "MMX_PMULHRSWrm",
- "VTESTPDYrm",
+def: InstRW<[SBWriteResGroup71], (instregex "VTESTPDYrm",
"VTESTPSYrm")>;
def SBWriteResGroup72 : SchedWriteRes<[SBPort1,SBPort23]> {
"SHRD(16|32|64)mri8")>;
def SBWriteResGroup89 : SchedWriteRes<[SBPort0,SBPort23]> {
- let Latency = 9;
+ let Latency = 11;
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SBWriteResGroup89], (instregex "MMX_PMULUDQirm",
- "(V?)PMADDUBSWrm",
+def: InstRW<[SBWriteResGroup89], (instregex "(V?)PMADDUBSWrm",
"(V?)PMADDWDrm",
"(V?)PMULDQrm",
"(V?)PMULHRSWrm",
"(V?)PMULUDQrm",
"(V?)PSADBWrm")>;
+def SBWriteResGroup89_2 : SchedWriteRes<[SBPort0,SBPort23]> {
+ let Latency = 10;
+ let NumMicroOps = 2;
+ let ResourceCycles = [1,1];
+}
+def: InstRW<[SBWriteResGroup89], (instregex "MMX_PMADDUBSWrm",
+ "MMX_PMADDWDirm"
+ "MMX_PMULHRSWrm",
+ "MMX_PMULHUWirm",
+ "MMX_PMULHWirm",
+ "MMX_PMULLWirm",
+ "MMX_PMULUDQirm",
+ "MMX_PSADBWirm")>;
+
def SBWriteResGroup90 : SchedWriteRes<[SBPort1,SBPort23]> {
let Latency = 9;
let NumMicroOps = 2;
"VCVTTPD2DQYrm")>;
def SBWriteResGroup108 : SchedWriteRes<[SBPort0,SBPort23,SBPort15]> {
- let Latency = 11;
+ let Latency = 13;
let NumMicroOps = 4;
let ResourceCycles = [1,1,2];
}
define i64 @test_pmaddubsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmaddubsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmaddubsw %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmaddubsw (%rdi), %mm0 # sched: [8:1.00]
+; GENERIC-NEXT: pmaddubsw %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmaddubsw (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
;
; SANDY-LABEL: test_pmaddubsw:
; SANDY: # %bb.0:
-; SANDY-NEXT: pmaddubsw %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT: pmaddubsw (%rdi), %mm0 # sched: [8:1.00]
+; SANDY-NEXT: pmaddubsw %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT: pmaddubsw (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
define i64 @test_pmulhrsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmulhrsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmulhrsw %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmulhrsw (%rdi), %mm0 # sched: [8:1.00]
+; GENERIC-NEXT: pmulhrsw %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
;
; SANDY-LABEL: test_pmulhrsw:
; SANDY: # %bb.0:
-; SANDY-NEXT: pmulhrsw %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT: pmulhrsw (%rdi), %mm0 # sched: [8:1.00]
+; SANDY-NEXT: pmulhrsw %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT: pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; GENERIC-LABEL: test_pmulhw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: pmulhw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT: pmulhw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulhw (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SANDY-LABEL: test_pmulhw:
; SANDY: # %bb.0:
; SANDY-NEXT: pmulhw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT: pmulhw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT: pmulhw (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; GENERIC-LABEL: test_pmulhuw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: pmulhuw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT: pmulhuw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulhuw (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SANDY-LABEL: test_pmulhuw:
; SANDY: # %bb.0:
; SANDY-NEXT: pmulhuw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT: pmulhuw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT: pmulhuw (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; GENERIC-LABEL: test_pmullw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: pmullw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT: pmullw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmullw (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SANDY-LABEL: test_pmullw:
; SANDY: # %bb.0:
; SANDY-NEXT: pmullw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT: pmullw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT: pmullw (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
define i64 @test_pmuludq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmuludq:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmuludq %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmuludq (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmuludq %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmuludq (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
;
; SANDY-LABEL: test_pmuludq:
; SANDY: # %bb.0:
-; SANDY-NEXT: pmuludq %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT: pmuludq (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT: pmuludq %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT: pmuludq (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; GENERIC-LABEL: test_psadbw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: psadbw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT: psadbw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT: psadbw (%rdi), %mm0 # sched: [11:1.00]
; GENERIC-NEXT: movq %mm0, %rax # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SANDY-LABEL: test_psadbw:
; SANDY: # %bb.0:
; SANDY-NEXT: psadbw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT: psadbw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT: psadbw (%rdi), %mm0 # sched: [11:1.00]
; SANDY-NEXT: movq %mm0, %rax # sched: [1:0.33]
; SANDY-NEXT: retq # sched: [1:1.00]
;
define <4 x i32> @test_pmaddwd(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
; GENERIC-LABEL: test_pmaddwd:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmaddwd %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmaddwd (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmaddwd %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmaddwd (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaddwd:
;
; SANDY-LABEL: test_pmaddwd:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmaddwd (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmaddwd (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaddwd:
define <8 x i16> @test_pmulhuw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
; GENERIC-LABEL: test_pmulhuw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmulhuw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmulhuw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulhuw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmulhuw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhuw:
;
; SANDY-LABEL: test_pmulhuw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmulhuw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmulhuw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhuw:
define <8 x i16> @test_pmulhw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
; GENERIC-LABEL: test_pmulhw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmulhw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmulhw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulhw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmulhw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhw:
;
; SANDY-LABEL: test_pmulhw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmulhw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmulhw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhw:
define <8 x i16> @test_pmullw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
; GENERIC-LABEL: test_pmullw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmullw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmullw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmullw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmullw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmullw:
;
; SANDY-LABEL: test_pmullw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmullw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmullw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmullw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmullw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmullw:
define <2 x i64> @test_pmuludq(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
; GENERIC-LABEL: test_pmuludq:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmuludq %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmuludq (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmuludq %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmuludq (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmuludq:
;
; SANDY-LABEL: test_pmuludq:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmuludq (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmuludq (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmuludq:
define <2 x i64> @test_psadbw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
; GENERIC-LABEL: test_psadbw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: psadbw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: psadbw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: psadbw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: psadbw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psadbw:
;
; SANDY-LABEL: test_psadbw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpsadbw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpsadbw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psadbw:
define <8 x i16> @test_mpsadbw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
; GENERIC-LABEL: test_mpsadbw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: mpsadbw $7, %xmm1, %xmm0 # sched: [5:1.00]
-; GENERIC-NEXT: mpsadbw $7, (%rdi), %xmm0 # sched: [11:1.00]
+; GENERIC-NEXT: mpsadbw $7, %xmm1, %xmm0 # sched: [7:1.00]
+; GENERIC-NEXT: mpsadbw $7, (%rdi), %xmm0 # sched: [13:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SLM-LABEL: test_mpsadbw:
;
; SANDY-LABEL: test_mpsadbw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vmpsadbw $7, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; SANDY-NEXT: vmpsadbw $7, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; SANDY-NEXT: vmpsadbw $7, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
+; SANDY-NEXT: vmpsadbw $7, (%rdi), %xmm0, %xmm0 # sched: [13:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_mpsadbw:
define <2 x i64> @test_pmuldq(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
; GENERIC-LABEL: test_pmuldq:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmuldq %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmuldq (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmuldq %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmuldq (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SLM-LABEL: test_pmuldq:
;
; SANDY-LABEL: test_pmuldq:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmuldq (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmuldq (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmuldq:
define <4 x i32> @test_pmulld(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
; GENERIC-LABEL: test_pmulld:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmulld %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmulld (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulld %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmulld (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; SLM-LABEL: test_pmulld:
;
; SANDY-LABEL: test_pmulld:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmulld %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmulld (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmulld %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmulld (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulld:
define <8 x i16> @test_pmaddubsw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
; GENERIC-LABEL: test_pmaddubsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmaddubsw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmaddubsw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmaddubsw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmaddubsw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaddubsw:
;
; SANDY-LABEL: test_pmaddubsw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmaddubsw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmaddubsw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaddubsw:
define <8 x i16> @test_pmulhrsw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
; GENERIC-LABEL: test_pmulhrsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: pmulhrsw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT: pmulhrsw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT: pmulhrsw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT: pmulhrsw (%rdi), %xmm0 # sched: [11:1.00]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhrsw:
;
; SANDY-LABEL: test_pmulhrsw:
; SANDY: # %bb.0:
-; SANDY-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT: vpmulhrsw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT: vpmulhrsw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
; SANDY-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhrsw: