summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/vselect-minmax.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/vselect-minmax.ll')
-rw-r--r--llvm/test/CodeGen/X86/vselect-minmax.ll454
1 files changed, 241 insertions, 213 deletions
diff --git a/llvm/test/CodeGen/X86/vselect-minmax.ll b/llvm/test/CodeGen/X86/vselect-minmax.ll
index 9cfb248a86c..d61c4bc40f7 100644
--- a/llvm/test/CodeGen/X86/vselect-minmax.ll
+++ b/llvm/test/CodeGen/X86/vselect-minmax.ll
@@ -4535,23 +4535,24 @@ define <8 x i64> @test121(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test121:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm5, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
; SSE4-NEXT: movdqa %xmm6, %xmm0
; SSE4-NEXT: pcmpgtq %xmm2, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: movdqa %xmm8, %xmm0
; SSE4-NEXT: pcmpgtq %xmm3, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test121:
@@ -4655,23 +4656,24 @@ define <8 x i64> @test122(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test122:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm5, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
; SSE4-NEXT: movdqa %xmm6, %xmm0
; SSE4-NEXT: pcmpgtq %xmm2, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: movdqa %xmm8, %xmm0
; SSE4-NEXT: pcmpgtq %xmm3, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test122:
@@ -4775,9 +4777,10 @@ define <8 x i64> @test123(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test123:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
@@ -4785,12 +4788,12 @@ define <8 x i64> @test123(<8 x i64> %a, <8 x i64> %b) {
; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test123:
@@ -4894,9 +4897,10 @@ define <8 x i64> @test124(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test124:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
@@ -4904,12 +4908,12 @@ define <8 x i64> @test124(<8 x i64> %a, <8 x i64> %b) {
; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test124:
@@ -5013,36 +5017,39 @@ define <8 x i64> @test125(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test125:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm0, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm0, %xmm5
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: pxor %xmm7, %xmm6
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm1, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
-; SSE4-NEXT: movdqa %xmm5, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm5, %xmm4
+; SSE4-NEXT: movdqa %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
; SSE4-NEXT: movdqa %xmm2, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
-; SSE4-NEXT: movdqa %xmm6, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm1
+; SSE4-NEXT: movdqa %xmm9, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm7, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
-; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm8, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test125:
@@ -5160,36 +5167,39 @@ define <8 x i64> @test126(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test126:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm0, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm0, %xmm5
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: pxor %xmm7, %xmm6
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm1, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
-; SSE4-NEXT: movdqa %xmm5, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm5, %xmm4
+; SSE4-NEXT: movdqa %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
; SSE4-NEXT: movdqa %xmm2, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
-; SSE4-NEXT: movdqa %xmm6, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm1
+; SSE4-NEXT: movdqa %xmm9, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm7, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
-; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm8, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test126:
@@ -5307,35 +5317,38 @@ define <8 x i64> @test127(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test127:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm4, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm5, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm4, %xmm5
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: pxor %xmm7, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm6, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
-; SSE4-NEXT: movdqa %xmm6, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
+; SSE4-NEXT: movdqa %xmm9, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm1
; SSE4-NEXT: movdqa %xmm2, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm3, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
-; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
+; SSE4-NEXT: movapd %xmm5, %xmm0
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test127:
@@ -5453,35 +5466,38 @@ define <8 x i64> @test128(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test128:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm4, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm5, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm4, %xmm5
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: pxor %xmm7, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm6, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
-; SSE4-NEXT: movdqa %xmm6, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
+; SSE4-NEXT: movdqa %xmm9, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm1
; SSE4-NEXT: movdqa %xmm2, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm3, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
-; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
+; SSE4-NEXT: movapd %xmm5, %xmm0
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test128:
@@ -6977,9 +6993,10 @@ define <8 x i64> @test153(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test153:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
@@ -6987,12 +7004,12 @@ define <8 x i64> @test153(<8 x i64> %a, <8 x i64> %b) {
; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test153:
@@ -7096,9 +7113,10 @@ define <8 x i64> @test154(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test154:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
@@ -7106,12 +7124,12 @@ define <8 x i64> @test154(<8 x i64> %a, <8 x i64> %b) {
; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test154:
@@ -7215,23 +7233,24 @@ define <8 x i64> @test155(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test155:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm8
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm0, %xmm7
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm8, %xmm4
+; SSE4-NEXT: pcmpgtq %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm5, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
; SSE4-NEXT: movdqa %xmm6, %xmm0
; SSE4-NEXT: pcmpgtq %xmm2, %xmm0
; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: movdqa %xmm8, %xmm0
; SSE4-NEXT: pcmpgtq %xmm3, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
; SSE4-NEXT: movapd %xmm5, %xmm1
; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test155:
@@ -7335,35 +7354,38 @@ define <8 x i64> @test156(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test156:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm4, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm5, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm4, %xmm5
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: pxor %xmm7, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm6, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm4
+; SSE4-NEXT: pxor %xmm7, %xmm4
; SSE4-NEXT: movdqa %xmm1, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
-; SSE4-NEXT: movdqa %xmm6, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm4, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
+; SSE4-NEXT: movdqa %xmm9, %xmm1
+; SSE4-NEXT: pxor %xmm7, %xmm1
; SSE4-NEXT: movdqa %xmm2, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
-; SSE4-NEXT: movdqa %xmm7, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm3, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
-; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm3, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
+; SSE4-NEXT: movapd %xmm5, %xmm0
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test156:
@@ -7481,36 +7503,39 @@ define <8 x i64> @test159(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test159:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm0, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm0, %xmm5
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: pxor %xmm7, %xmm6
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm1, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
-; SSE4-NEXT: movdqa %xmm5, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm5, %xmm4
+; SSE4-NEXT: movdqa %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
; SSE4-NEXT: movdqa %xmm2, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
-; SSE4-NEXT: movdqa %xmm6, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm1
+; SSE4-NEXT: movdqa %xmm9, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm7, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
-; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm8, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test159:
@@ -7628,36 +7653,39 @@ define <8 x i64> @test160(<8 x i64> %a, <8 x i64> %b) {
;
; SSE4-LABEL: test160:
; SSE4: # %bb.0: # %entry
-; SSE4-NEXT: movdqa %xmm0, %xmm9
-; SSE4-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
-; SSE4-NEXT: movdqa %xmm0, %xmm10
-; SSE4-NEXT: pxor %xmm8, %xmm10
+; SSE4-NEXT: movdqa %xmm7, %xmm8
+; SSE4-NEXT: movdqa %xmm6, %xmm9
+; SSE4-NEXT: movdqa %xmm5, %xmm10
+; SSE4-NEXT: movdqa %xmm0, %xmm5
+; SSE4-NEXT: movdqa {{.*#+}} xmm7 = [9223372036854775808,9223372036854775808]
+; SSE4-NEXT: movdqa %xmm0, %xmm6
+; SSE4-NEXT: pxor %xmm7, %xmm6
; SSE4-NEXT: movdqa %xmm4, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm10, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm9, %xmm4
-; SSE4-NEXT: movdqa %xmm1, %xmm9
-; SSE4-NEXT: pxor %xmm8, %xmm9
-; SSE4-NEXT: movdqa %xmm5, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pcmpgtq %xmm9, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm6, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm5, %xmm4
+; SSE4-NEXT: movdqa %xmm1, %xmm5
+; SSE4-NEXT: pxor %xmm7, %xmm5
+; SSE4-NEXT: movdqa %xmm10, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pcmpgtq %xmm5, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm1, %xmm10
; SSE4-NEXT: movdqa %xmm2, %xmm1
-; SSE4-NEXT: pxor %xmm8, %xmm1
-; SSE4-NEXT: movdqa %xmm6, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm1
+; SSE4-NEXT: movdqa %xmm9, %xmm0
+; SSE4-NEXT: pxor %xmm7, %xmm0
; SSE4-NEXT: pcmpgtq %xmm1, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm6
+; SSE4-NEXT: blendvpd %xmm0, %xmm2, %xmm9
; SSE4-NEXT: movdqa %xmm3, %xmm0
-; SSE4-NEXT: pxor %xmm8, %xmm0
-; SSE4-NEXT: pxor %xmm7, %xmm8
-; SSE4-NEXT: pcmpgtq %xmm0, %xmm8
-; SSE4-NEXT: movdqa %xmm8, %xmm0
-; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm7
+; SSE4-NEXT: pxor %xmm7, %xmm0
+; SSE4-NEXT: pxor %xmm8, %xmm7
+; SSE4-NEXT: pcmpgtq %xmm0, %xmm7
+; SSE4-NEXT: movdqa %xmm7, %xmm0
+; SSE4-NEXT: blendvpd %xmm0, %xmm3, %xmm8
; SSE4-NEXT: movapd %xmm4, %xmm0
-; SSE4-NEXT: movapd %xmm5, %xmm1
-; SSE4-NEXT: movapd %xmm6, %xmm2
-; SSE4-NEXT: movapd %xmm7, %xmm3
+; SSE4-NEXT: movapd %xmm10, %xmm1
+; SSE4-NEXT: movapd %xmm9, %xmm2
+; SSE4-NEXT: movapd %xmm8, %xmm3
; SSE4-NEXT: retq
;
; AVX1-LABEL: test160:
OpenPOWER on IntegriCloud