[PATCH] D107344: [SLP]Do not emit extra shuffle for insertelements vectorization.
Steven Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 4 10:45:30 PDT 2021
srj added a comment.
Some raw info from debugging one of our likely failure cases:
ShuffleOrOp = InsertElement
E->dump() is:
0.
Operand 0:
<4 x double> <double poison, double poison, double poison, double 1.000000e+02>
%269 = insertelement <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, double %218, i32 0
Operand 1:
%218 = load double, double* %210, align 8, !tbaa !38
%215 = load double, double* %214, align 8, !tbaa !38
Scalars:
%269 = insertelement <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, double %218, i32 0
%270 = insertelement <4 x double> %269, double %215, i32 1
State: Vectorize
MainOp: %269 = insertelement <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, double %218, i32 0
AltOp: %269 = insertelement <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, double %218, i32 0
VectorizedValue: NULL
ReuseShuffleIndices: Empty
ReorderIndices:
UserTreeIndices:
VL0->dump() is:
%269 = insertelement <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, double %218, i32 0
The initial value for V (i.e., vectorizeTree(E->getOperand(1))) is:
%217 = load <2 x double>, <2 x double>* %216, align 8, !tbaa !38
We calculate:
NumElts = 4, NumScalars = 2, IsIdentity = 1 , Offset = 0
Thus we replace V with Builder.CreateShuffleVector(V, Mask), yielding a new V:
%268 = shufflevector <2 x double> %217, <2 x double> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
Since Offset = 0, we (now) skip inserting the extra shufflevector, but this is wrong, since the extra shufflevector would produce:
%269 = shufflevector <4 x double> <double poison, double poison, double poison, double 1.000000e+02>, <4 x double> %268, <4 x i32> <i32 4, i32 5, i32 2, i32 3>
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107344/new/
https://reviews.llvm.org/D107344
More information about the llvm-commits
mailing list