diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-07-20 18:14:33 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-07-20 18:14:33 +0000 |
commit | 0381c21d2ddc182aebfef25c6500d781ddb428fe (patch) | |
tree | c23d58e58a0e1f164bbf5b5eff7a6b50eeb445c9 /test/CodeGen/X86/widen_shuffle-1.ll | |
parent | 9d999f58e310ff03790bb32bb77f4e611b93807b (diff) | |
download | llvm-0381c21d2ddc182aebfef25c6500d781ddb428fe.tar.gz llvm-0381c21d2ddc182aebfef25c6500d781ddb428fe.tar.bz2 llvm-0381c21d2ddc182aebfef25c6500d781ddb428fe.tar.xz |
PR10421: Fix a straightforward bug in the widening logic for CONCAT_VECTORS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135595 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/widen_shuffle-1.ll')
-rw-r--r-- | test/CodeGen/X86/widen_shuffle-1.ll | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/CodeGen/X86/widen_shuffle-1.ll b/test/CodeGen/X86/widen_shuffle-1.ll index 034c42c758..8e951b77ca 100644 --- a/test/CodeGen/X86/widen_shuffle-1.ll +++ b/test/CodeGen/X86/widen_shuffle-1.ll @@ -30,6 +30,7 @@ entry: ; opA with opB, the DAG will produce new operations with opA. define void @shuf3(<4 x float> %tmp10, <4 x float> %vecinit15, <4 x float>* %dst) nounwind { entry: +; CHECK: shuf3: ; CHECK: pshufd %shuffle.i.i.i12 = shufflevector <4 x float> %tmp10, <4 x float> %vecinit15, <4 x i32> <i32 0, i32 1, i32 4, i32 5> %tmp25.i.i = shufflevector <4 x float> %shuffle.i.i.i12, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2> @@ -46,3 +47,10 @@ entry: ret void } +; PR10421: make sure we correctly handle extreme widening with CONCAT_VECTORS +define <8 x i8> @shuf4(<4 x i8> %a, <4 x i8> %b) nounwind readnone { +; CHECK: shuf4: +; CHECK: punpckldq + %vshuf = shufflevector <4 x i8> %a, <4 x i8> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> + ret <8 x i8> %vshuf +} |