diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-shuffle-combining.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/vector-shuffle-combining.ll | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-combining.ll b/llvm/test/CodeGen/X86/vector-shuffle-combining.ll index 199a05eb2b8..61d3fc3ba3d 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-combining.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-combining.ll @@ -1,10 +1,10 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mcpu=x86-64 -mattr=+sse2 | FileCheck %s --check-prefix=ALL --check-prefix=SSE --check-prefix=SSE2 -; RUN: llc < %s -mcpu=x86-64 -mattr=+ssse3 | FileCheck %s --check-prefix=ALL --check-prefix=SSE --check-prefix=SSSE3 -; RUN: llc < %s -mcpu=x86-64 -mattr=+sse4.1 | FileCheck %s --check-prefix=ALL --check-prefix=SSE --check-prefix=SSE41 -; RUN: llc < %s -mcpu=x86-64 -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 -; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefixes=ALL,AVX,AVX2,AVX2-SLOW -; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2,+fast-variable-shuffle | FileCheck %s --check-prefixes=ALL,AVX,AVX2,AVX2-FAST +; RUN: llc < %s -mcpu=x86-64 -mattr=+sse2 | FileCheck %s --check-prefixes=CHECK,SSE,SSE2 +; RUN: llc < %s -mcpu=x86-64 -mattr=+ssse3 | FileCheck %s --check-prefixes=CHECK,SSE,SSSE3 +; RUN: llc < %s -mcpu=x86-64 -mattr=+sse4.1 | FileCheck %s --check-prefixes=CHECK,SSE,SSE41 +; RUN: llc < %s -mcpu=x86-64 -mattr=+avx | FileCheck %s --check-prefixes=CHECK,AVX,AVX1 +; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefixes=CHECK,AVX,AVX2,AVX2-SLOW +; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2,+fast-variable-shuffle | FileCheck %s --check-prefixes=CHECK,AVX,AVX2,AVX2-FAST ; ; Verify that the DAG combiner correctly folds bitwise operations across ; shuffles, nested shuffles with undef, pairs of nested shuffles, and other @@ -18,9 +18,9 @@ declare <8 x i16> @llvm.x86.sse2.pshufl.w(<8 x i16>, i8) declare <8 x i16> @llvm.x86.sse2.pshufh.w(<8 x i16>, i8) define <4 x i32> @combine_pshufd1(<4 x i32> %a) { -; ALL-LABEL: combine_pshufd1: -; ALL: # %bb.0: # %entry -; ALL-NEXT: retq +; CHECK-LABEL: combine_pshufd1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: retq entry: %b = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %a, i8 27) %c = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %b, i8 27) @@ -28,9 +28,9 @@ entry: } define <4 x i32> @combine_pshufd2(<4 x i32> %a) { -; ALL-LABEL: combine_pshufd2: -; ALL: # %bb.0: # %entry -; ALL-NEXT: retq +; CHECK-LABEL: combine_pshufd2: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: retq entry: %b = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %a, i8 27) %b.cast = bitcast <4 x i32> %b to <8 x i16> @@ -41,9 +41,9 @@ entry: } define <4 x i32> @combine_pshufd3(<4 x i32> %a) { -; ALL-LABEL: combine_pshufd3: -; ALL: # %bb.0: # %entry -; ALL-NEXT: retq +; CHECK-LABEL: combine_pshufd3: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: retq entry: %b = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %a, i8 27) %b.cast = bitcast <4 x i32> %b to <8 x i16> @@ -113,9 +113,9 @@ entry: } define <8 x i16> @combine_pshuflw1(<8 x i16> %a) { -; ALL-LABEL: combine_pshuflw1: -; ALL: # %bb.0: # %entry -; ALL-NEXT: retq +; CHECK-LABEL: combine_pshuflw1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: retq entry: %b = call <8 x i16> @llvm.x86.sse2.pshufl.w(<8 x i16> %a, i8 27) %c = call <8 x i16> @llvm.x86.sse2.pshufl.w(<8 x i16> %b, i8 27) @@ -123,9 +123,9 @@ entry: } define <8 x i16> @combine_pshuflw2(<8 x i16> %a) { -; ALL-LABEL: combine_pshuflw2: -; ALL: # %bb.0: # %entry -; ALL-NEXT: retq +; CHECK-LABEL: combine_pshuflw2: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: retq entry: %b = call <8 x i16> @llvm.x86.sse2.pshufl.w(<8 x i16> %a, i8 27) %c = call <8 x i16> @llvm.x86.sse2.pshufh.w(<8 x i16> %b, i8 -28) @@ -811,9 +811,9 @@ define <4 x i32> @combine_nested_undef_test12(<4 x i32> %A, <4 x i32> %B) { ; The following pair of shuffles is folded into vector %A. define <4 x i32> @combine_nested_undef_test13(<4 x i32> %A, <4 x i32> %B) { -; ALL-LABEL: combine_nested_undef_test13: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_nested_undef_test13: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x i32> %A, <4 x i32> %B, <4 x i32> <i32 1, i32 4, i32 2, i32 6> %2 = shufflevector <4 x i32> %1, <4 x i32> undef, <4 x i32> <i32 4, i32 0, i32 2, i32 4> ret <4 x i32> %2 @@ -1371,9 +1371,9 @@ define <4 x i32> @combine_test10(<4 x i32> %a, <4 x i32> %b) { } define <4 x float> @combine_test11(<4 x float> %a, <4 x float> %b) { -; ALL-LABEL: combine_test11: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_test11: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 4, i32 1, i32 6, i32 3> %2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 3> ret <4 x float> %2 @@ -1464,9 +1464,9 @@ define <4 x float> @combine_test15(<4 x float> %a, <4 x float> %b) { } define <4 x i32> @combine_test16(<4 x i32> %a, <4 x i32> %b) { -; ALL-LABEL: combine_test16: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_test16: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 4, i32 1, i32 6, i32 3> %2 = shufflevector <4 x i32> %1, <4 x i32> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 3> ret <4 x i32> %2 @@ -2161,9 +2161,9 @@ define <4 x float> @combine_undef_input_test5(<4 x float> %a, <4 x float> %b) { ; (shuffle(shuffle A, Undef, M0), A, M1) -> (shuffle A, Undef, M2) define <4 x float> @combine_undef_input_test6(<4 x float> %a) { -; ALL-LABEL: combine_undef_input_test6: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_undef_input_test6: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 4, i32 2, i32 3, i32 1> %2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 1, i32 2> ret <4 x float> %2 @@ -2235,9 +2235,9 @@ define <4 x float> @combine_undef_input_test9(<4 x float> %a) { } define <4 x float> @combine_undef_input_test10(<4 x float> %a) { -; ALL-LABEL: combine_undef_input_test10: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_undef_input_test10: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 3> %2 = shufflevector <4 x float> %1, <4 x float> %a, <4 x i32> <i32 0, i32 2, i32 6, i32 7> ret <4 x float> %2 @@ -2351,9 +2351,9 @@ define <4 x float> @combine_undef_input_test15(<4 x float> %a, <4 x float> %b) { ; combined into a single legal shuffle operation. define <4 x float> @combine_undef_input_test16(<4 x float> %a) { -; ALL-LABEL: combine_undef_input_test16: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_undef_input_test16: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 4, i32 2, i32 3, i32 1> %2 = shufflevector <4 x float> %a, <4 x float> %1, <4 x i32> <i32 0, i32 1, i32 5, i32 3> ret <4 x float> %2 @@ -2425,9 +2425,9 @@ define <4 x float> @combine_undef_input_test19(<4 x float> %a) { } define <4 x float> @combine_undef_input_test20(<4 x float> %a) { -; ALL-LABEL: combine_undef_input_test20: -; ALL: # %bb.0: -; ALL-NEXT: retq +; CHECK-LABEL: combine_undef_input_test20: +; CHECK: # %bb.0: +; CHECK-NEXT: retq %1 = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 3> %2 = shufflevector <4 x float> %a, <4 x float> %1, <4 x i32> <i32 4, i32 6, i32 2, i32 3> ret <4 x float> %2 |

