diff --git a/llvm/test/CodeGen/X86/avx-vperm2x128.ll b/llvm/test/CodeGen/X86/avx-vperm2x128.ll index b31248c17d16..3308f054ac7e 100644 --- a/llvm/test/CodeGen/X86/avx-vperm2x128.ll +++ b/llvm/test/CodeGen/X86/avx-vperm2x128.ll @@ -42,8 +42,8 @@ entry: ret <8 x float> %shuffle } -define <32 x i8> @E(<32 x i8> %a, <32 x i8> %b) nounwind uwtable readnone ssp { -; ALL-LABEL: E: +define <32 x i8> @shuffle_v32i8_2323(<32 x i8> %a, <32 x i8> %b) nounwind uwtable readnone ssp { +; ALL-LABEL: shuffle_v32i8_2323: ; ALL: ## BB#0: ## %entry ; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3] ; ALL-NEXT: retq @@ -52,6 +52,27 @@ entry: ret <32 x i8> %shuffle } +define <32 x i8> @shuffle_v32i8_2323_domain(<32 x i8> %a, <32 x i8> %b) nounwind uwtable readnone ssp { +; AVX1-LABEL: shuffle_v32i8_2323_domain: +; AVX1: ## BB#0: ## %entry +; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0 +; AVX1-NEXT: vpaddb {{.*}}(%rip), %xmm0, %xmm0 +; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 +; AVX1-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3] +; AVX1-NEXT: retq +; +; AVX2-LABEL: shuffle_v32i8_2323_domain: +; AVX2: ## BB#0: ## %entry +; AVX2-NEXT: vpaddb {{.*}}(%rip), %ymm0, %ymm0 +; AVX2-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3,2,3] +; AVX2-NEXT: retq +entry: + ; add forces execution domain + %a2 = add <32 x i8> %a, + %shuffle = shufflevector <32 x i8> %a2, <32 x i8> %b, <32 x i32> + ret <32 x i8> %shuffle +} + define <4 x i64> @shuffle_v4i64_6701(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnone ssp { ; ALL-LABEL: shuffle_v4i64_6701: ; ALL: ## BB#0: ## %entry @@ -82,27 +103,6 @@ entry: ret <4 x i64> %shuffle } -define <32 x i8> @shuffle_v32i8_2323(<32 x i8> %a, <32 x i8> %b) nounwind uwtable readnone ssp { -; AVX1-LABEL: shuffle_v32i8_2323: -; AVX1: ## BB#0: ## %entry -; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0 -; AVX1-NEXT: vpaddb {{.*}}(%rip), %xmm0, %xmm0 -; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 -; AVX1-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3] -; AVX1-NEXT: retq -; -; AVX2-LABEL: shuffle_v32i8_2323: -; AVX2: ## BB#0: ## %entry -; AVX2-NEXT: vpaddb {{.*}}(%rip), %ymm0, %ymm0 -; AVX2-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3,2,3] -; AVX2-NEXT: retq -entry: - ; add forces execution domain - %a2 = add <32 x i8> %a, - %shuffle = shufflevector <32 x i8> %a2, <32 x i8> %b, <32 x i32> - ret <32 x i8> %shuffle -} - define <8 x i32> @shuffle_v8i32_u5u7cdef(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnone ssp { ; AVX1-LABEL: shuffle_v8i32_u5u7cdef: ; AVX1: ## BB#0: ## %entry