summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll')
-rw-r--r--llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll512
1 files changed, 160 insertions, 352 deletions
diff --git a/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll b/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll
index 0b675aa0b27..228c4a95ffd 100644
--- a/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll
+++ b/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll
@@ -667,17 +667,11 @@ define <4 x float> @insert_test_add_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_add_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_add_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_add_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <4 x float> %a, %b
%2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -699,17 +693,11 @@ define <4 x float> @insert_test_sub_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_sub_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_sub_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_sub_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <4 x float> %a, %b
%2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -728,17 +716,11 @@ define <4 x float> @insert_test_mul_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_mul_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_mul_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_mul_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <4 x float> %a, %b
%2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -760,17 +742,11 @@ define <4 x float> @insert_test_div_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_div_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_div_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_div_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <4 x float> %a, %b
%2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -789,17 +765,11 @@ define <2 x double> @insert_test_add_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_add_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_add_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_add_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <2 x double> %a, %b
%2 = shufflevector <2 x double> %1, <2 x double> %a, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -821,17 +791,11 @@ define <2 x double> @insert_test_sub_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_sub_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_sub_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_sub_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <2 x double> %a, %b
%2 = shufflevector <2 x double> %1, <2 x double> %a, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -850,17 +814,11 @@ define <2 x double> @insert_test_mul_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_mul_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_mul_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_mul_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <2 x double> %a, %b
%2 = shufflevector <2 x double> %1, <2 x double> %a, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -882,17 +840,11 @@ define <2 x double> @insert_test_div_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test_div_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test_div_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test_div_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <2 x double> %a, %b
%2 = shufflevector <2 x double> %1, <2 x double> %a, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -912,17 +864,11 @@ define <4 x float> @insert_test2_add_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_add_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_add_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_add_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <4 x float> %b, %a
%2 = shufflevector <4 x float> %1, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -945,17 +891,11 @@ define <4 x float> @insert_test2_sub_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_sub_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_sub_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_sub_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <4 x float> %b, %a
%2 = shufflevector <4 x float> %1, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -975,17 +915,11 @@ define <4 x float> @insert_test2_mul_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_mul_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_mul_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_mul_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <4 x float> %b, %a
%2 = shufflevector <4 x float> %1, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -1008,17 +942,11 @@ define <4 x float> @insert_test2_div_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_div_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_div_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_div_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <4 x float> %b, %a
%2 = shufflevector <4 x float> %1, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
ret <4 x float> %2
@@ -1038,17 +966,11 @@ define <2 x double> @insert_test2_add_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_add_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_add_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_add_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <2 x double> %b, %a
%2 = shufflevector <2 x double> %1, <2 x double> %b, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -1071,17 +993,11 @@ define <2 x double> @insert_test2_sub_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_sub_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_sub_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_sub_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <2 x double> %b, %a
%2 = shufflevector <2 x double> %1, <2 x double> %b, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -1101,17 +1017,11 @@ define <2 x double> @insert_test2_mul_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_mul_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_mul_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_mul_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <2 x double> %b, %a
%2 = shufflevector <2 x double> %1, <2 x double> %b, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -1134,17 +1044,11 @@ define <2 x double> @insert_test2_div_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test2_div_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test2_div_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test2_div_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <2 x double> %b, %a
%2 = shufflevector <2 x double> %1, <2 x double> %b, <2 x i32> <i32 0, i32 3>
ret <2 x double> %2
@@ -1163,17 +1067,11 @@ define <4 x float> @insert_test3_add_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_add_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_add_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_add_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <4 x float> %a, %b
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %a, <4 x float> %1
ret <4 x float> %2
@@ -1195,17 +1093,11 @@ define <4 x float> @insert_test3_sub_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_sub_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_sub_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_sub_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <4 x float> %a, %b
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %a, <4 x float> %1
ret <4 x float> %2
@@ -1224,17 +1116,11 @@ define <4 x float> @insert_test3_mul_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_mul_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_mul_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_mul_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <4 x float> %a, %b
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %a, <4 x float> %1
ret <4 x float> %2
@@ -1256,17 +1142,11 @@ define <4 x float> @insert_test3_div_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_div_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivps %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_div_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivps %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_div_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivps %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <4 x float> %a, %b
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %a, <4 x float> %1
ret <4 x float> %2
@@ -1285,17 +1165,11 @@ define <2 x double> @insert_test3_add_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_add_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_add_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_add_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <2 x double> %a, %b
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %a, <2 x double> %1
ret <2 x double> %2
@@ -1317,17 +1191,11 @@ define <2 x double> @insert_test3_sub_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_sub_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_sub_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_sub_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <2 x double> %a, %b
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %a, <2 x double> %1
ret <2 x double> %2
@@ -1346,17 +1214,11 @@ define <2 x double> @insert_test3_mul_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_mul_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_mul_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_mul_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <2 x double> %a, %b
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %a, <2 x double> %1
ret <2 x double> %2
@@ -1378,17 +1240,11 @@ define <2 x double> @insert_test3_div_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test3_div_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivpd %xmm1, %xmm0, %xmm1
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test3_div_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivpd %xmm1, %xmm0, %xmm1
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test3_div_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivpd %xmm1, %xmm0, %xmm1
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <2 x double> %a, %b
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %a, <2 x double> %1
ret <2 x double> %2
@@ -1408,17 +1264,11 @@ define <4 x float> @insert_test4_add_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_add_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_add_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_add_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <4 x float> %b, %a
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %b, <4 x float> %1
ret <4 x float> %2
@@ -1441,17 +1291,11 @@ define <4 x float> @insert_test4_sub_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_sub_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_sub_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_sub_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <4 x float> %b, %a
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %b, <4 x float> %1
ret <4 x float> %2
@@ -1471,17 +1315,11 @@ define <4 x float> @insert_test4_mul_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_mul_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_mul_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_mul_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <4 x float> %b, %a
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %b, <4 x float> %1
ret <4 x float> %2
@@ -1504,17 +1342,11 @@ define <4 x float> @insert_test4_div_ss(<4 x float> %a, <4 x float> %b) {
; SSE41-NEXT: movaps %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_div_ss:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivps %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_div_ss:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivps %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_div_ss:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivps %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <4 x float> %b, %a
%2 = select <4 x i1> <i1 false, i1 true, i1 true, i1 true>, <4 x float> %b, <4 x float> %1
ret <4 x float> %2
@@ -1534,17 +1366,11 @@ define <2 x double> @insert_test4_add_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_add_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vaddpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_add_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vaddpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_add_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vaddpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fadd <2 x double> %b, %a
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %b, <2 x double> %1
ret <2 x double> %2
@@ -1567,17 +1393,11 @@ define <2 x double> @insert_test4_sub_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_sub_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vsubpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_sub_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vsubpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_sub_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vsubpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fsub <2 x double> %b, %a
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %b, <2 x double> %1
ret <2 x double> %2
@@ -1597,17 +1417,11 @@ define <2 x double> @insert_test4_mul_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_mul_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmulpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_mul_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmulpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_mul_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vmulpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fmul <2 x double> %b, %a
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %b, <2 x double> %1
ret <2 x double> %2
@@ -1630,17 +1444,11 @@ define <2 x double> @insert_test4_div_sd(<2 x double> %a, <2 x double> %b) {
; SSE41-NEXT: movapd %xmm2, %xmm0
; SSE41-NEXT: ret{{[l|q]}}
;
-; AVX1-LABEL: insert_test4_div_sd:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vdivpd %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX1-NEXT: ret{{[l|q]}}
-;
-; AVX512-LABEL: insert_test4_div_sd:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vdivpd %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
-; AVX512-NEXT: ret{{[l|q]}}
+; AVX-LABEL: insert_test4_div_sd:
+; AVX: # %bb.0:
+; AVX-NEXT: vdivpd %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1]
+; AVX-NEXT: ret{{[l|q]}}
%1 = fdiv <2 x double> %b, %a
%2 = select <2 x i1> <i1 false, i1 true>, <2 x double> %b, <2 x double> %1
ret <2 x double> %2
OpenPOWER on IntegriCloud