defm : JWriteResFpuPair<WriteFHAdd, [JFPU0, JFPA], 4>; // +1cy latency.
defm : JWriteResYMMPair<WriteFHAddY, [JFPU0, JFPA], 4, [2,2], 2>; // +1cy latency.
-defm : JWriteResFpuPair<WritePHAdd, [JFPU01, JVALU], 2>; // +1cy latency.
+defm : JWriteResFpuPair<WritePHAdd, [JFPU01, JVALU], 1>;
defm : JWriteResFpuPair<WritePHAddX, [JFPU01, JVALU], 2>; // +1cy latency.
defm : X86WriteResPairUnsupported<WritePHAddY>;
;
; BTVER2-LABEL: test_phaddd:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phaddd %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phaddd (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phaddd %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phaddd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
;
; BTVER2-LABEL: test_phaddsw:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phaddsw %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phaddsw (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phaddsw %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phaddsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
;
; BTVER2-LABEL: test_phaddw:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phaddw %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phaddw (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phaddw %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phaddw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
;
; BTVER2-LABEL: test_phsubd:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phsubd %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phsubd (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phsubd %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phsubd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
;
; BTVER2-LABEL: test_phsubsw:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phsubsw %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phsubsw (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phsubsw %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phsubsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
;
; BTVER2-LABEL: test_phsubw:
; BTVER2: # %bb.0:
-; BTVER2-NEXT: phsubw %mm1, %mm0 # sched: [2:0.50]
-; BTVER2-NEXT: phsubw (%rdi), %mm0 # sched: [7:1.00]
+; BTVER2-NEXT: phsubw %mm1, %mm0 # sched: [1:0.50]
+; BTVER2-NEXT: phsubw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT: movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT: retq # sched: [4:1.00]
;
# CHECK-NEXT: 1 6 1.00 * palignr $1, (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 palignr $1, %xmm0, %xmm2
# CHECK-NEXT: 1 6 1.00 * palignr $1, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phaddd %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phaddd (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phaddd %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phaddd (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phaddd %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phaddd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phaddsw %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phaddsw (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phaddsw %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phaddsw (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phaddsw %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phaddsw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phaddw %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phaddw (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phaddw %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phaddw (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phaddw %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phaddw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phsubd %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phsubd (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phsubd %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phsubd (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phsubd %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phsubd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phsubsw %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phsubsw (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phsubsw %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phsubsw (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phsubsw %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phsubsw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 phsubw %mm0, %mm2
-# CHECK-NEXT: 1 7 1.00 * phsubw (%rax), %mm2
+# CHECK-NEXT: 1 1 0.50 phsubw %mm0, %mm2
+# CHECK-NEXT: 1 6 1.00 * phsubw (%rax), %mm2
# CHECK-NEXT: 1 2 0.50 phsubw %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * phsubw (%rax), %xmm2
# CHECK-NEXT: 1 2 1.00 pmaddubsw %mm0, %mm2