From cd7ad7130fc6d115d8ed2b8e9a3116fa11c9d028 Mon Sep 17 00:00:00 2001 From: Michael Kuperstein Date: Wed, 28 Dec 2016 00:18:08 +0000 Subject: [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 --- llvm/test/Transforms/BBVectorize/loop1.ll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'llvm/test/Transforms/BBVectorize/loop1.ll') 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 -- cgit v1.2.3