diff --git a/llvm/test/CodeGen/X86/avx512-insert-extract.ll b/llvm/test/CodeGen/X86/avx512-insert-extract.ll index 81e003d14cadc..f3e73c4fd85d5 100644 --- a/llvm/test/CodeGen/X86/avx512-insert-extract.ll +++ b/llvm/test/CodeGen/X86/avx512-insert-extract.ll @@ -171,7 +171,7 @@ define i32 @test10(<16 x i32> %x, i32 %ind) nounwind { ret i32 %e } -define <16 x i32> @test11(<16 x i32>%a, <16 x i32>%b) { +define <16 x i32> @test11(<16 x i32>%a, <16 x i32>%b) nounwind { ; KNL-LABEL: test11: ; KNL: ## %bb.0: ; KNL-NEXT: vpcmpltud %zmm1, %zmm0, %k0 @@ -209,7 +209,7 @@ define <16 x i32> @test11(<16 x i32>%a, <16 x i32>%b) { ret <16 x i32>%c } -define i64 @test12(<16 x i64>%a, <16 x i64>%b, i64 %a1, i64 %b1) { +define i64 @test12(<16 x i64>%a, <16 x i64>%b, i64 %a1, i64 %b1) nounwind { ; KNL-LABEL: test12: ; KNL: ## %bb.0: ; KNL-NEXT: movq %rdi, %rax @@ -235,7 +235,7 @@ define i64 @test12(<16 x i64>%a, <16 x i64>%b, i64 %a1, i64 %b1) { ret i64 %res } -define i16 @test13(i32 %a, i32 %b) { +define i16 @test13(i32 %a, i32 %b) nounwind { ; KNL-LABEL: test13: ; KNL: ## %bb.0: ; KNL-NEXT: cmpl %esi, %edi @@ -271,7 +271,7 @@ define i16 @test13(i32 %a, i32 %b) { ret i16 %res } -define i64 @test14(<8 x i64>%a, <8 x i64>%b, i64 %a1, i64 %b1) { +define i64 @test14(<8 x i64>%a, <8 x i64>%b, i64 %a1, i64 %b1) nounwind { ; KNL-LABEL: test14: ; KNL: ## %bb.0: ; KNL-NEXT: movq %rdi, %rax @@ -299,7 +299,7 @@ define i64 @test14(<8 x i64>%a, <8 x i64>%b, i64 %a1, i64 %b1) { ret i64 %res } -define i16 @test15(ptr%addr) { +define i16 @test15(ptr%addr) nounwind { ; CHECK-LABEL: test15: ; CHECK: ## %bb.0: ; CHECK-NEXT: xorl %ecx, %ecx @@ -314,7 +314,7 @@ define i16 @test15(ptr%addr) { ret i16 %x2 } -define i16 @test16(ptr%addr, i16 %a) { +define i16 @test16(ptr%addr, i16 %a) nounwind { ; KNL-LABEL: test16: ; KNL: ## %bb.0: ; KNL-NEXT: movzbl (%rdi), %eax @@ -350,7 +350,7 @@ define i16 @test16(ptr%addr, i16 %a) { ret i16 %x2 } -define i8 @test17(ptr%addr, i8 %a) { +define i8 @test17(ptr%addr, i8 %a) nounwind { ; KNL-LABEL: test17: ; KNL: ## %bb.0: ; KNL-NEXT: movzbl (%rdi), %eax @@ -386,7 +386,7 @@ define i8 @test17(ptr%addr, i8 %a) { ret i8 %x2 } -define i64 @extract_v8i64(<8 x i64> %x, ptr %dst) { +define i64 @extract_v8i64(<8 x i64> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v8i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrq $1, %xmm0, %rax @@ -400,7 +400,7 @@ define i64 @extract_v8i64(<8 x i64> %x, ptr %dst) { ret i64 %r1 } -define i64 @extract_v4i64(<4 x i64> %x, ptr %dst) { +define i64 @extract_v4i64(<4 x i64> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v4i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrq $1, %xmm0, %rax @@ -414,7 +414,7 @@ define i64 @extract_v4i64(<4 x i64> %x, ptr %dst) { ret i64 %r1 } -define i64 @extract_v2i64(<2 x i64> %x, ptr %dst) { +define i64 @extract_v2i64(<2 x i64> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v2i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vmovq %xmm0, %rax @@ -426,7 +426,7 @@ define i64 @extract_v2i64(<2 x i64> %x, ptr %dst) { ret i64 %r1 } -define i32 @extract_v16i32(<16 x i32> %x, ptr %dst) { +define i32 @extract_v16i32(<16 x i32> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v16i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vextractps $1, %xmm0, %eax @@ -440,7 +440,7 @@ define i32 @extract_v16i32(<16 x i32> %x, ptr %dst) { ret i32 %r1 } -define i32 @extract_v8i32(<8 x i32> %x, ptr %dst) { +define i32 @extract_v8i32(<8 x i32> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v8i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vextractps $1, %xmm0, %eax @@ -454,7 +454,7 @@ define i32 @extract_v8i32(<8 x i32> %x, ptr %dst) { ret i32 %r1 } -define i32 @extract_v4i32(<4 x i32> %x, ptr %dst) { +define i32 @extract_v4i32(<4 x i32> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v4i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vextractps $1, %xmm0, %eax @@ -466,7 +466,7 @@ define i32 @extract_v4i32(<4 x i32> %x, ptr %dst) { ret i32 %r1 } -define i16 @extract_v32i16(<32 x i16> %x, ptr %dst) { +define i16 @extract_v32i16(<32 x i16> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v32i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrw $1, %xmm0, %eax @@ -481,7 +481,7 @@ define i16 @extract_v32i16(<32 x i16> %x, ptr %dst) { ret i16 %r1 } -define i16 @extract_v16i16(<16 x i16> %x, ptr %dst) { +define i16 @extract_v16i16(<16 x i16> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v16i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrw $1, %xmm0, %eax @@ -496,7 +496,7 @@ define i16 @extract_v16i16(<16 x i16> %x, ptr %dst) { ret i16 %r1 } -define i16 @extract_v8i16(<8 x i16> %x, ptr %dst) { +define i16 @extract_v8i16(<8 x i16> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v8i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrw $1, %xmm0, %eax @@ -509,7 +509,7 @@ define i16 @extract_v8i16(<8 x i16> %x, ptr %dst) { ret i16 %r1 } -define i8 @extract_v64i8(<64 x i8> %x, ptr %dst) { +define i8 @extract_v64i8(<64 x i8> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v64i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrb $1, %xmm0, %eax @@ -524,7 +524,7 @@ define i8 @extract_v64i8(<64 x i8> %x, ptr %dst) { ret i8 %r1 } -define i8 @extract_v32i8(<32 x i8> %x, ptr %dst) { +define i8 @extract_v32i8(<32 x i8> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v32i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrb $1, %xmm0, %eax @@ -539,7 +539,7 @@ define i8 @extract_v32i8(<32 x i8> %x, ptr %dst) { ret i8 %r1 } -define i8 @extract_v16i8(<16 x i8> %x, ptr %dst) { +define i8 @extract_v16i8(<16 x i8> %x, ptr %dst) nounwind { ; CHECK-LABEL: extract_v16i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpextrb $1, %xmm0, %eax @@ -552,7 +552,7 @@ define i8 @extract_v16i8(<16 x i8> %x, ptr %dst) { ret i8 %r1 } -define <8 x i64> @insert_v8i64(<8 x i64> %x, i64 %y , ptr %ptr) { +define <8 x i64> @insert_v8i64(<8 x i64> %x, i64 %y , ptr %ptr) nounwind { ; KNL-LABEL: insert_v8i64: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrq $1, (%rsi), %xmm0, %xmm1 @@ -576,7 +576,7 @@ define <8 x i64> @insert_v8i64(<8 x i64> %x, i64 %y , ptr %ptr) { ret <8 x i64> %r2 } -define <4 x i64> @insert_v4i64(<4 x i64> %x, i64 %y , ptr %ptr) { +define <4 x i64> @insert_v4i64(<4 x i64> %x, i64 %y , ptr %ptr) nounwind { ; KNL-LABEL: insert_v4i64: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrq $1, (%rsi), %xmm0, %xmm1 @@ -599,7 +599,7 @@ define <4 x i64> @insert_v4i64(<4 x i64> %x, i64 %y , ptr %ptr) { ret <4 x i64> %r2 } -define <2 x i64> @insert_v2i64(<2 x i64> %x, i64 %y , ptr %ptr) { +define <2 x i64> @insert_v2i64(<2 x i64> %x, i64 %y , ptr %ptr) nounwind { ; CHECK-LABEL: insert_v2i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero @@ -612,7 +612,7 @@ define <2 x i64> @insert_v2i64(<2 x i64> %x, i64 %y , ptr %ptr) { ret <2 x i64> %r2 } -define <16 x i32> @insert_v16i32(<16 x i32> %x, i32 %y, ptr %ptr) { +define <16 x i32> @insert_v16i32(<16 x i32> %x, i32 %y, ptr %ptr) nounwind { ; KNL-LABEL: insert_v16i32: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrd $1, (%rsi), %xmm0, %xmm1 @@ -636,7 +636,7 @@ define <16 x i32> @insert_v16i32(<16 x i32> %x, i32 %y, ptr %ptr) { ret <16 x i32> %r2 } -define <8 x i32> @insert_v8i32(<8 x i32> %x, i32 %y, ptr %ptr) { +define <8 x i32> @insert_v8i32(<8 x i32> %x, i32 %y, ptr %ptr) nounwind { ; KNL-LABEL: insert_v8i32: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrd $1, (%rsi), %xmm0, %xmm1 @@ -659,7 +659,7 @@ define <8 x i32> @insert_v8i32(<8 x i32> %x, i32 %y, ptr %ptr) { ret <8 x i32> %r2 } -define <4 x i32> @insert_v4i32(<4 x i32> %x, i32 %y, ptr %ptr) { +define <4 x i32> @insert_v4i32(<4 x i32> %x, i32 %y, ptr %ptr) nounwind { ; CHECK-LABEL: insert_v4i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrd $1, (%rsi), %xmm0, %xmm0 @@ -671,7 +671,7 @@ define <4 x i32> @insert_v4i32(<4 x i32> %x, i32 %y, ptr %ptr) { ret <4 x i32> %r2 } -define <32 x i16> @insert_v32i16(<32 x i16> %x, i16 %y, ptr %ptr) { +define <32 x i16> @insert_v32i16(<32 x i16> %x, i16 %y, ptr %ptr) nounwind { ; KNL-LABEL: insert_v32i16: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrw $1, (%rsi), %xmm0, %xmm1 @@ -695,7 +695,7 @@ define <32 x i16> @insert_v32i16(<32 x i16> %x, i16 %y, ptr %ptr) { ret <32 x i16> %r2 } -define <16 x i16> @insert_v16i16(<16 x i16> %x, i16 %y, ptr %ptr) { +define <16 x i16> @insert_v16i16(<16 x i16> %x, i16 %y, ptr %ptr) nounwind { ; KNL-LABEL: insert_v16i16: ; KNL: ## %bb.0: ; KNL-NEXT: vpinsrw $1, (%rsi), %xmm0, %xmm1 @@ -720,7 +720,7 @@ define <16 x i16> @insert_v16i16(<16 x i16> %x, i16 %y, ptr %ptr) { ret <16 x i16> %r2 } -define <8 x i16> @insert_v8i16(<8 x i16> %x, i16 %y, ptr %ptr) { +define <8 x i16> @insert_v8i16(<8 x i16> %x, i16 %y, ptr %ptr) nounwind { ; CHECK-LABEL: insert_v8i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrw $1, (%rsi), %xmm0, %xmm0 @@ -732,7 +732,7 @@ define <8 x i16> @insert_v8i16(<8 x i16> %x, i16 %y, ptr %ptr) { ret <8 x i16> %r2 } -define <64 x i8> @insert_v64i8(<64 x i8> %x, i8 %y, ptr %ptr) { +define <64 x i8> @insert_v64i8(<64 x i8> %x, i8 %y, ptr %ptr) nounwind { ; CHECK-LABEL: insert_v64i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrb $1, (%rsi), %xmm0, %xmm1 @@ -747,7 +747,7 @@ define <64 x i8> @insert_v64i8(<64 x i8> %x, i8 %y, ptr %ptr) { ret <64 x i8> %r2 } -define <32 x i8> @insert_v32i8(<32 x i8> %x, i8 %y, ptr %ptr) { +define <32 x i8> @insert_v32i8(<32 x i8> %x, i8 %y, ptr %ptr) nounwind { ; CHECK-LABEL: insert_v32i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrb $1, (%rsi), %xmm0, %xmm1 @@ -761,7 +761,7 @@ define <32 x i8> @insert_v32i8(<32 x i8> %x, i8 %y, ptr %ptr) { ret <32 x i8> %r2 } -define <16 x i8> @insert_v16i8(<16 x i8> %x, i8 %y, ptr %ptr) { +define <16 x i8> @insert_v16i8(<16 x i8> %x, i8 %y, ptr %ptr) nounwind { ; CHECK-LABEL: insert_v16i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrb $3, (%rsi), %xmm0, %xmm0 @@ -773,7 +773,7 @@ define <16 x i8> @insert_v16i8(<16 x i8> %x, i8 %y, ptr %ptr) { ret <16 x i8> %r2 } -define <8 x i64> @test_insert_128_v8i64(<8 x i64> %x, i64 %y) { +define <8 x i64> @test_insert_128_v8i64(<8 x i64> %x, i64 %y) nounwind { ; CHECK-LABEL: test_insert_128_v8i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrq $1, %rdi, %xmm0, %xmm1 @@ -783,7 +783,7 @@ define <8 x i64> @test_insert_128_v8i64(<8 x i64> %x, i64 %y) { ret <8 x i64> %r } -define <16 x i32> @test_insert_128_v16i32(<16 x i32> %x, i32 %y) { +define <16 x i32> @test_insert_128_v16i32(<16 x i32> %x, i32 %y) nounwind { ; CHECK-LABEL: test_insert_128_v16i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vpinsrd $1, %edi, %xmm0, %xmm1 @@ -793,7 +793,7 @@ define <16 x i32> @test_insert_128_v16i32(<16 x i32> %x, i32 %y) { ret <16 x i32> %r } -define <8 x double> @test_insert_128_v8f64(<8 x double> %x, double %y) { +define <8 x double> @test_insert_128_v8f64(<8 x double> %x, double %y) nounwind { ; CHECK-LABEL: test_insert_128_v8f64: ; CHECK: ## %bb.0: ; CHECK-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0] @@ -803,7 +803,7 @@ define <8 x double> @test_insert_128_v8f64(<8 x double> %x, double %y) { ret <8 x double> %r } -define <16 x float> @test_insert_128_v16f32(<16 x float> %x, float %y) { +define <16 x float> @test_insert_128_v16f32(<16 x float> %x, float %y) nounwind { ; CHECK-LABEL: test_insert_128_v16f32: ; CHECK: ## %bb.0: ; CHECK-NEXT: vinsertps {{.*#+}} xmm1 = xmm0[0],xmm1[0],xmm0[2,3] @@ -813,7 +813,7 @@ define <16 x float> @test_insert_128_v16f32(<16 x float> %x, float %y) { ret <16 x float> %r } -define <16 x i16> @test_insert_128_v16i16(<16 x i16> %x, i16 %y) { +define <16 x i16> @test_insert_128_v16i16(<16 x i16> %x, i16 %y) nounwind { ; KNL-LABEL: test_insert_128_v16i16: ; KNL: ## %bb.0: ; KNL-NEXT: vmovd %edi, %xmm1 @@ -832,7 +832,7 @@ define <16 x i16> @test_insert_128_v16i16(<16 x i16> %x, i16 %y) { ret <16 x i16> %r } -define <32 x i8> @test_insert_128_v32i8(<32 x i8> %x, i8 %y) { +define <32 x i8> @test_insert_128_v32i8(<32 x i8> %x, i8 %y) nounwind { ; CHECK-LABEL: test_insert_128_v32i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -843,7 +843,7 @@ define <32 x i8> @test_insert_128_v32i8(<32 x i8> %x, i8 %y) { ret <32 x i8> %r } -define i32 @test_insertelement_v32i1(i32 %a, i32 %b, <32 x i32> %x , <32 x i32> %y) { +define i32 @test_insertelement_v32i1(i32 %a, i32 %b, <32 x i32> %x , <32 x i32> %y) nounwind { ; KNL-LABEL: test_insertelement_v32i1: ; KNL: ## %bb.0: ; KNL-NEXT: cmpl %esi, %edi @@ -887,7 +887,7 @@ define i32 @test_insertelement_v32i1(i32 %a, i32 %b, <32 x i32> %x , <32 x i32> ret i32 %res } -define i8 @test_iinsertelement_v4i1(i32 %a, i32 %b, <4 x i32> %x , <4 x i32> %y) { +define i8 @test_iinsertelement_v4i1(i32 %a, i32 %b, <4 x i32> %x , <4 x i32> %y) nounwind { ; KNL-LABEL: test_iinsertelement_v4i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $xmm1 killed $xmm1 def $zmm1 @@ -928,7 +928,7 @@ define i8 @test_iinsertelement_v4i1(i32 %a, i32 %b, <4 x i32> %x , <4 x i32> %y) ret i8 %res } -define i8 @test_iinsertelement_v2i1(i32 %a, i32 %b, <2 x i64> %x , <2 x i64> %y) { +define i8 @test_iinsertelement_v2i1(i32 %a, i32 %b, <2 x i64> %x , <2 x i64> %y) nounwind { ; KNL-LABEL: test_iinsertelement_v2i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $xmm1 killed $xmm1 def $zmm1 @@ -967,7 +967,7 @@ define i8 @test_iinsertelement_v2i1(i32 %a, i32 %b, <2 x i64> %x , <2 x i64> %y) ret i8 %res } -define zeroext i8 @test_extractelement_v2i1(<2 x i64> %a, <2 x i64> %b) { +define zeroext i8 @test_extractelement_v2i1(<2 x i64> %a, <2 x i64> %b) nounwind { ; KNL-LABEL: test_extractelement_v2i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $xmm1 killed $xmm1 def $zmm1 @@ -994,7 +994,7 @@ define zeroext i8 @test_extractelement_v2i1(<2 x i64> %a, <2 x i64> %b) { ret i8 %res } -define zeroext i8 @extractelement_v2i1_alt(<2 x i64> %a, <2 x i64> %b) { +define zeroext i8 @extractelement_v2i1_alt(<2 x i64> %a, <2 x i64> %b) nounwind { ; KNL-LABEL: extractelement_v2i1_alt: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $xmm1 killed $xmm1 def $zmm1 @@ -1024,7 +1024,7 @@ define zeroext i8 @extractelement_v2i1_alt(<2 x i64> %a, <2 x i64> %b) { ret i8 %res } -define zeroext i8 @test_extractelement_v4i1(<4 x i32> %a, <4 x i32> %b) { +define zeroext i8 @test_extractelement_v4i1(<4 x i32> %a, <4 x i32> %b) nounwind { ; KNL-LABEL: test_extractelement_v4i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $xmm1 killed $xmm1 def $zmm1 @@ -1049,7 +1049,7 @@ define zeroext i8 @test_extractelement_v4i1(<4 x i32> %a, <4 x i32> %b) { ret i8 %res } -define zeroext i8 @test_extractelement_v32i1(<32 x i8> %a, <32 x i8> %b) { +define zeroext i8 @test_extractelement_v32i1(<32 x i8> %a, <32 x i8> %b) nounwind { ; KNL-LABEL: test_extractelement_v32i1: ; KNL: ## %bb.0: ; KNL-NEXT: vpminub %xmm1, %xmm0, %xmm1 @@ -1077,7 +1077,7 @@ define zeroext i8 @test_extractelement_v32i1(<32 x i8> %a, <32 x i8> %b) { ret i8 %res } -define zeroext i8 @test_extractelement_v64i1(<64 x i8> %a, <64 x i8> %b) { +define zeroext i8 @test_extractelement_v64i1(<64 x i8> %a, <64 x i8> %b) nounwind { ; KNL-LABEL: test_extractelement_v64i1: ; KNL: ## %bb.0: ; KNL-NEXT: vextracti64x4 $1, %zmm1, %ymm1 @@ -1113,7 +1113,7 @@ define zeroext i8 @test_extractelement_v64i1(<64 x i8> %a, <64 x i8> %b) { ret i8 %res } -define zeroext i8 @extractelement_v64i1_alt(<64 x i8> %a, <64 x i8> %b) { +define zeroext i8 @extractelement_v64i1_alt(<64 x i8> %a, <64 x i8> %b) nounwind { ; KNL-LABEL: extractelement_v64i1_alt: ; KNL: ## %bb.0: ; KNL-NEXT: vextracti64x4 $1, %zmm1, %ymm1 @@ -1152,7 +1152,7 @@ define zeroext i8 @extractelement_v64i1_alt(<64 x i8> %a, <64 x i8> %b) { ret i8 %res } -define i64 @test_extractelement_variable_v2i64(<2 x i64> %t1, i32 %index) { +define i64 @test_extractelement_variable_v2i64(<2 x i64> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v2i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1164,14 +1164,11 @@ define i64 @test_extractelement_variable_v2i64(<2 x i64> %t1, i32 %index) { ret i64 %t2 } -define i64 @test_extractelement_variable_v4i64(<4 x i64> %t1, i32 %index) { +define i64 @test_extractelement_variable_v4i64(<4 x i64> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v4i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1186,14 +1183,11 @@ define i64 @test_extractelement_variable_v4i64(<4 x i64> %t1, i32 %index) { ret i64 %t2 } -define i64 @test_extractelement_variable_v8i64(<8 x i64> %t1, i32 %index) { +define i64 @test_extractelement_variable_v8i64(<8 x i64> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v8i64: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1208,7 +1202,7 @@ define i64 @test_extractelement_variable_v8i64(<8 x i64> %t1, i32 %index) { ret i64 %t2 } -define double @test_extractelement_variable_v2f64(<2 x double> %t1, i32 %index) { +define double @test_extractelement_variable_v2f64(<2 x double> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v2f64: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1220,14 +1214,11 @@ define double @test_extractelement_variable_v2f64(<2 x double> %t1, i32 %index) ret double %t2 } -define double @test_extractelement_variable_v4f64(<4 x double> %t1, i32 %index) { +define double @test_extractelement_variable_v4f64(<4 x double> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v4f64: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1242,14 +1233,11 @@ define double @test_extractelement_variable_v4f64(<4 x double> %t1, i32 %index) ret double %t2 } -define double @test_extractelement_variable_v8f64(<8 x double> %t1, i32 %index) { +define double @test_extractelement_variable_v8f64(<8 x double> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v8f64: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1264,7 +1252,7 @@ define double @test_extractelement_variable_v8f64(<8 x double> %t1, i32 %index) ret double %t2 } -define i32 @test_extractelement_variable_v4i32(<4 x i32> %t1, i32 %index) { +define i32 @test_extractelement_variable_v4i32(<4 x i32> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v4i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1276,14 +1264,11 @@ define i32 @test_extractelement_variable_v4i32(<4 x i32> %t1, i32 %index) { ret i32 %t2 } -define i32 @test_extractelement_variable_v8i32(<8 x i32> %t1, i32 %index) { +define i32 @test_extractelement_variable_v8i32(<8 x i32> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v8i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1298,14 +1283,11 @@ define i32 @test_extractelement_variable_v8i32(<8 x i32> %t1, i32 %index) { ret i32 %t2 } -define i32 @test_extractelement_variable_v16i32(<16 x i32> %t1, i32 %index) { +define i32 @test_extractelement_variable_v16i32(<16 x i32> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v16i32: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1320,7 +1302,7 @@ define i32 @test_extractelement_variable_v16i32(<16 x i32> %t1, i32 %index) { ret i32 %t2 } -define float @test_extractelement_variable_v4f32(<4 x float> %t1, i32 %index) { +define float @test_extractelement_variable_v4f32(<4 x float> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v4f32: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1332,14 +1314,11 @@ define float @test_extractelement_variable_v4f32(<4 x float> %t1, i32 %index) { ret float %t2 } -define float @test_extractelement_variable_v8f32(<8 x float> %t1, i32 %index) { +define float @test_extractelement_variable_v8f32(<8 x float> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v8f32: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1354,14 +1333,11 @@ define float @test_extractelement_variable_v8f32(<8 x float> %t1, i32 %index) { ret float %t2 } -define float @test_extractelement_variable_v16f32(<16 x float> %t1, i32 %index) { +define float @test_extractelement_variable_v16f32(<16 x float> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v16f32: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1376,7 +1352,7 @@ define float @test_extractelement_variable_v16f32(<16 x float> %t1, i32 %index) ret float %t2 } -define i16 @test_extractelement_variable_v8i16(<8 x i16> %t1, i32 %index) { +define i16 @test_extractelement_variable_v8i16(<8 x i16> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v8i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1388,14 +1364,11 @@ define i16 @test_extractelement_variable_v8i16(<8 x i16> %t1, i32 %index) { ret i16 %t2 } -define i16 @test_extractelement_variable_v16i16(<16 x i16> %t1, i32 %index) { +define i16 @test_extractelement_variable_v16i16(<16 x i16> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v16i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1410,14 +1383,11 @@ define i16 @test_extractelement_variable_v16i16(<16 x i16> %t1, i32 %index) { ret i16 %t2 } -define i16 @test_extractelement_variable_v32i16(<32 x i16> %t1, i32 %index) { +define i16 @test_extractelement_variable_v32i16(<32 x i16> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v32i16: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1432,7 +1402,7 @@ define i16 @test_extractelement_variable_v32i16(<32 x i16> %t1, i32 %index) { ret i16 %t2 } -define i8 @test_extractelement_variable_v16i8(<16 x i8> %t1, i32 %index) { +define i8 @test_extractelement_variable_v16i8(<16 x i8> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v16i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1444,14 +1414,11 @@ define i8 @test_extractelement_variable_v16i8(<16 x i8> %t1, i32 %index) { ret i8 %t2 } -define i8 @test_extractelement_variable_v32i8(<32 x i8> %t1, i32 %index) { +define i8 @test_extractelement_variable_v32i8(<32 x i8> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v32i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-32, %rsp ; CHECK-NEXT: subq $64, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1467,14 +1434,11 @@ define i8 @test_extractelement_variable_v32i8(<32 x i8> %t1, i32 %index) { ret i8 %t2 } -define i8 @test_extractelement_variable_v64i8(<64 x i8> %t1, i32 %index) { +define i8 @test_extractelement_variable_v64i8(<64 x i8> %t1, i32 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v64i8: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1490,14 +1454,11 @@ define i8 @test_extractelement_variable_v64i8(<64 x i8> %t1, i32 %index) { ret i8 %t2 } -define i8 @test_extractelement_variable_v64i8_indexi8(<64 x i8> %t1, i8 %index) { +define i8 @test_extractelement_variable_v64i8_indexi8(<64 x i8> %t1, i8 %index) nounwind { ; CHECK-LABEL: test_extractelement_variable_v64i8_indexi8: ; CHECK: ## %bb.0: ; CHECK-NEXT: pushq %rbp -; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: .cfi_offset %rbp, -16 ; CHECK-NEXT: movq %rsp, %rbp -; CHECK-NEXT: .cfi_def_cfa_register %rbp ; CHECK-NEXT: andq $-64, %rsp ; CHECK-NEXT: subq $128, %rsp ; CHECK-NEXT: addb %dil, %dil @@ -1515,7 +1476,7 @@ define i8 @test_extractelement_variable_v64i8_indexi8(<64 x i8> %t1, i8 %index) ret i8 %t2 } -define zeroext i8 @test_extractelement_varible_v2i1(<2 x i64> %a, <2 x i64> %b, i32 %index) { +define zeroext i8 @test_extractelement_varible_v2i1(<2 x i64> %a, <2 x i64> %b, i32 %index) nounwind { ; KNL-LABEL: test_extractelement_varible_v2i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1546,7 +1507,7 @@ define zeroext i8 @test_extractelement_varible_v2i1(<2 x i64> %a, <2 x i64> %b, ret i8 %res } -define zeroext i8 @test_extractelement_varible_v4i1(<4 x i32> %a, <4 x i32> %b, i32 %index) { +define zeroext i8 @test_extractelement_varible_v4i1(<4 x i32> %a, <4 x i32> %b, i32 %index) nounwind { ; KNL-LABEL: test_extractelement_varible_v4i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1577,7 +1538,7 @@ define zeroext i8 @test_extractelement_varible_v4i1(<4 x i32> %a, <4 x i32> %b, ret i8 %res } -define zeroext i8 @test_extractelement_varible_v8i1(<8 x i32> %a, <8 x i32> %b, i32 %index) { +define zeroext i8 @test_extractelement_varible_v8i1(<8 x i32> %a, <8 x i32> %b, i32 %index) nounwind { ; KNL-LABEL: test_extractelement_varible_v8i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1610,7 +1571,7 @@ define zeroext i8 @test_extractelement_varible_v8i1(<8 x i32> %a, <8 x i32> %b, ret i8 %res } -define zeroext i8 @test_extractelement_varible_v16i1(<16 x i32> %a, <16 x i32> %b, i32 %index) { +define zeroext i8 @test_extractelement_varible_v16i1(<16 x i32> %a, <16 x i32> %b, i32 %index) nounwind { ; KNL-LABEL: test_extractelement_varible_v16i1: ; KNL: ## %bb.0: ; KNL-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1640,7 +1601,7 @@ define zeroext i8 @test_extractelement_varible_v16i1(<16 x i32> %a, <16 x i32> % ret i8 %res } -define zeroext i8 @test_extractelement_varible_v32i1(<32 x i8> %a, <32 x i8> %b, i32 %index) { +define zeroext i8 @test_extractelement_varible_v32i1(<32 x i8> %a, <32 x i8> %b, i32 %index) nounwind { ; KNL-LABEL: test_extractelement_varible_v32i1: ; KNL: ## %bb.0: ; KNL-NEXT: vpminub %ymm1, %ymm0, %ymm1 @@ -1655,10 +1616,7 @@ define zeroext i8 @test_extractelement_varible_v32i1(<32 x i8> %a, <32 x i8> %b, ; SKX-LABEL: test_extractelement_varible_v32i1: ; SKX: ## %bb.0: ; SKX-NEXT: pushq %rbp -; SKX-NEXT: .cfi_def_cfa_offset 16 -; SKX-NEXT: .cfi_offset %rbp, -16 ; SKX-NEXT: movq %rsp, %rbp -; SKX-NEXT: .cfi_def_cfa_register %rbp ; SKX-NEXT: andq $-32, %rsp ; SKX-NEXT: subq $64, %rsp ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi @@ -1690,14 +1648,11 @@ define <8 x i64> @insert_double_zero(<2 x i64> %a) nounwind { ret <8 x i64> %e } -define i32 @test_insertelement_variable_v32i1(<32 x i8> %a, i8 %b, i32 %index) { +define i32 @test_insertelement_variable_v32i1(<32 x i8> %a, i8 %b, i32 %index) nounwind { ; KNL-LABEL: test_insertelement_variable_v32i1: ; KNL: ## %bb.0: ; KNL-NEXT: pushq %rbp -; KNL-NEXT: .cfi_def_cfa_offset 16 -; KNL-NEXT: .cfi_offset %rbp, -16 ; KNL-NEXT: movq %rsp, %rbp -; KNL-NEXT: .cfi_def_cfa_register %rbp ; KNL-NEXT: andq $-32, %rsp ; KNL-NEXT: subq $64, %rsp ; KNL-NEXT: ## kill: def $esi killed $esi def $rsi @@ -1744,14 +1699,11 @@ define i32 @test_insertelement_variable_v32i1(<32 x i8> %a, i8 %b, i32 %index) { ret i32 %t4 } -define i64 @test_insertelement_variable_v64i1(<64 x i8> %a, i8 %b, i32 %index) { +define i64 @test_insertelement_variable_v64i1(<64 x i8> %a, i8 %b, i32 %index) nounwind { ; KNL-LABEL: test_insertelement_variable_v64i1: ; KNL: ## %bb.0: ; KNL-NEXT: pushq %rbp -; KNL-NEXT: .cfi_def_cfa_offset 16 -; KNL-NEXT: .cfi_offset %rbp, -16 ; KNL-NEXT: movq %rsp, %rbp -; KNL-NEXT: .cfi_def_cfa_register %rbp ; KNL-NEXT: andq $-64, %rsp ; KNL-NEXT: subq $128, %rsp ; KNL-NEXT: ## kill: def $esi killed $esi def $rsi @@ -1813,14 +1765,11 @@ define i64 @test_insertelement_variable_v64i1(<64 x i8> %a, i8 %b, i32 %index) { ret i64 %t4 } -define i96 @test_insertelement_variable_v96i1(<96 x i8> %a, i8 %b, i32 %index) { +define i96 @test_insertelement_variable_v96i1(<96 x i8> %a, i8 %b, i32 %index) nounwind { ; KNL-LABEL: test_insertelement_variable_v96i1: ; KNL: ## %bb.0: ; KNL-NEXT: pushq %rbp -; KNL-NEXT: .cfi_def_cfa_offset 16 -; KNL-NEXT: .cfi_offset %rbp, -16 ; KNL-NEXT: movq %rsp, %rbp -; KNL-NEXT: .cfi_def_cfa_register %rbp ; KNL-NEXT: andq $-64, %rsp ; KNL-NEXT: subq $192, %rsp ; KNL-NEXT: movl 744(%rbp), %eax @@ -1987,10 +1936,7 @@ define i96 @test_insertelement_variable_v96i1(<96 x i8> %a, i8 %b, i32 %index) { ; SKX-LABEL: test_insertelement_variable_v96i1: ; SKX: ## %bb.0: ; SKX-NEXT: pushq %rbp -; SKX-NEXT: .cfi_def_cfa_offset 16 -; SKX-NEXT: .cfi_offset %rbp, -16 ; SKX-NEXT: movq %rsp, %rbp -; SKX-NEXT: .cfi_def_cfa_register %rbp ; SKX-NEXT: andq $-64, %rsp ; SKX-NEXT: subq $192, %rsp ; SKX-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero @@ -2120,14 +2066,11 @@ define i96 @test_insertelement_variable_v96i1(<96 x i8> %a, i8 %b, i32 %index) { ret i96 %t4 } -define i128 @test_insertelement_variable_v128i1(<128 x i8> %a, i8 %b, i32 %index) { +define i128 @test_insertelement_variable_v128i1(<128 x i8> %a, i8 %b, i32 %index) nounwind { ; KNL-LABEL: test_insertelement_variable_v128i1: ; KNL: ## %bb.0: ; KNL-NEXT: pushq %rbp -; KNL-NEXT: .cfi_def_cfa_offset 16 -; KNL-NEXT: .cfi_offset %rbp, -16 ; KNL-NEXT: movq %rsp, %rbp -; KNL-NEXT: .cfi_def_cfa_register %rbp ; KNL-NEXT: andq $-64, %rsp ; KNL-NEXT: subq $192, %rsp ; KNL-NEXT: ## kill: def $esi killed $esi def $rsi @@ -2199,10 +2142,7 @@ define i128 @test_insertelement_variable_v128i1(<128 x i8> %a, i8 %b, i32 %index ; SKX-LABEL: test_insertelement_variable_v128i1: ; SKX: ## %bb.0: ; SKX-NEXT: pushq %rbp -; SKX-NEXT: .cfi_def_cfa_offset 16 -; SKX-NEXT: .cfi_offset %rbp, -16 ; SKX-NEXT: movq %rsp, %rbp -; SKX-NEXT: .cfi_def_cfa_register %rbp ; SKX-NEXT: andq $-64, %rsp ; SKX-NEXT: subq $192, %rsp ; SKX-NEXT: ## kill: def $esi killed $esi def $rsi @@ -2232,7 +2172,7 @@ define i128 @test_insertelement_variable_v128i1(<128 x i8> %a, i8 %b, i32 %index ret i128 %t4 } -define void @test_concat_v2i1(ptr %arg, ptr %arg1, ptr %arg2) { +define void @test_concat_v2i1(ptr %arg, ptr %arg1, ptr %arg2) nounwind { ; KNL-LABEL: test_concat_v2i1: ; KNL: ## %bb.0: ; KNL-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero