[PATCH] D24381: [InstCombine] Convert shuffle with single constant vector element to insertelement.
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 16 09:37:02 PDT 2016
spatel added inline comments.
================
Comment at: test/Transforms/InstCombine/insert-const-shuf.ll:16-29
@@ -15,14 +15,16 @@
; A chain of inserts should collapse.
define <4 x float> @twoInserts(<4 x float> %x) {
; CHECK-LABEL: @twoInserts(
-; CHECK-NEXT: [[INS2:%.*]] = shufflevector <4 x float> %x, <4 x float> <float undef, float 0.000000e+00, float 4.200000e+01, float 1.100000e+01>, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
+; CHECK-NEXT: [[SHUF1:%.*]] = insertelement <4 x float> %x, float 0.000000e+00, i32 1
+; CHECK-NEXT: [[INS1:%.*]] = insertelement <4 x float> [[SHUF1]], float 4.200000e+01, i32 2
+; CHECK-NEXT: [[INS2:%.*]] = insertelement <4 x float> [[INS1]], float 1.100000e+01, i32 3
; CHECK-NEXT: ret <4 x float> [[INS2]]
;
%shuf = shufflevector <4 x float> %x, <4 x float> zeroinitializer, <4 x i32> <i32 0, i32 5, i32 6, i32 3>
%ins1 = insertelement <4 x float> %shuf, float 42.0, i32 2
%ins2 = insertelement <4 x float> %ins1, float 11.0, i32 3
ret <4 x float> %ins2
}
----------------
As-is, this patch will cause a regression here (ie, the chain of inserts does not collapse). But D24182 will fix this? If it's not possible to separate these two patches without causing a regression, then they should be merged together. I'm not able to apply D24182 cleanly after applying this patch, so it may be that something is just not updated?
https://reviews.llvm.org/D24381
More information about the llvm-commits
mailing list