This fixes PR41270.
The recursive function evaluateInDifferentElementOrder expects to be called
on a vector Value, so when we call it on a vector GEP's arguments, we must
first check that the argument is indeed a vector.
Differential D60058
[InstCombine] Handle vector gep with scalar argument in evaluateInDifferentElementOrder uabelho on Apr 1 2019, 2:22 AM. Authored by
Details This fixes PR41270. The recursive function evaluateInDifferentElementOrder expects to be called
Diff Detail Event TimelineComment Actions LGTM, but we can reduce the test (also please use 'utils/update_test_checks.py' to auto-generate the FileCheck lines): define <4 x i16*> @PR41270([4 x i16]* %x) { %ins = insertelement <4 x [4 x i16]*> undef, [4 x i16]* %x, i32 0 %splat = shufflevector <4 x [4 x i16]*> %ins, <4 x [4 x i16]*> undef, <4 x i32> zeroinitializer %t2 = getelementptr inbounds [4 x i16], <4 x [4 x i16]*> %splat, i32 0, i32 3 %t3 = extractelement <4 x i16*> %t2, i32 3 %ins2 = insertelement <4 x i16*> undef, i16* %t3, i32 0 ret <4 x i16*> %ins2 } |