diff options
author | Michael Kuperstein <mkuper@google.com> | 2016-12-28 00:18:08 +0000 |
---|---|---|
committer | Michael Kuperstein <mkuper@google.com> | 2016-12-28 00:18:08 +0000 |
commit | cd7ad7130fc6d115d8ed2b8e9a3116fa11c9d028 (patch) | |
tree | e3f3009599bf0c7681325fbe283148c7db29d3a6 /llvm/test/Transforms/BBVectorize/loop1.ll | |
parent | 2a8440df70fd59fb6c30444f74864a459bd18869 (diff) | |
download | bcm5719-llvm-cd7ad7130fc6d115d8ed2b8e9a3116fa11c9d028.tar.gz bcm5719-llvm-cd7ad7130fc6d115d8ed2b8e9a3116fa11c9d028.zip |
[InstCombine] Canonicalize insert splat sequences into an insert + shuffle
This adds a combine that canonicalizes a chain of inserts which broadcasts
a value into a single insert + a splat shufflevector.
This fixes PR31286.
Differential Revision: https://reviews.llvm.org/D27992
llvm-svn: 290641
Diffstat (limited to 'llvm/test/Transforms/BBVectorize/loop1.ll')
-rw-r--r-- | llvm/test/Transforms/BBVectorize/loop1.ll | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/test/Transforms/BBVectorize/loop1.ll b/llvm/test/Transforms/BBVectorize/loop1.ll index 0a0a6629897..7e7b603116f 100644 --- a/llvm/test/Transforms/BBVectorize/loop1.ll +++ b/llvm/test/Transforms/BBVectorize/loop1.ll @@ -46,10 +46,10 @@ for.body: ; preds = %for.body, %entry ; CHECK: %add4.v.i1.1 = insertelement <2 x double> undef, double %1, i32 0 ; CHECK: %add4.v.i1.2 = insertelement <2 x double> %add4.v.i1.1, double %0, i32 1 ; CHECK: %add4 = fadd <2 x double> %add4.v.i1.2, %add4.v.i1.2 -; CHECK: %add5.v.i1.1 = insertelement <2 x double> undef, double %0, i32 0 -; CHECK: %add5.v.i1.2 = insertelement <2 x double> %add5.v.i1.1, double %0, i32 1 +; CHECK: %2 = insertelement <2 x double> undef, double %0, i32 0 +; CHECK: %add5.v.i1.2 = shufflevector <2 x double> %2, <2 x double> undef, <2 x i32> zeroinitializer ; CHECK: %add5 = fadd <2 x double> %add4, %add5.v.i1.2 -; CHECK: %mul6.v.i0.2 = insertelement <2 x double> %add5.v.i1.1, double %mul8, i32 1 +; CHECK: %mul6.v.i0.2 = insertelement <2 x double> %2, double %mul8, i32 1 ; CHECK: %mul6 = fmul <2 x double> %mul6.v.i0.2, %add5 ; CHECK: %mul6.v.r1 = extractelement <2 x double> %mul6, i32 0 ; CHECK: %mul6.v.r2 = extractelement <2 x double> %mul6, i32 1 |