[PATCH] D52548: Stop instcombining propagating wider shufflevector arguments to predecessors.
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 30 07:21:18 PDT 2018
The backend bug may be masked after
https://reviews.llvm.org/rL343406
On Sat, Sep 29, 2018 at 8:24 AM Sanjay Patel <spatel at rotateright.com> wrote:
>
>
> On Sat, Sep 29, 2018 at 7:52 AM Jan Vesely <jan.vesely at rutgers.edu> wrote:
>
>>
>> it creates <3 x i8>, which is then shuffled into another <3 x i8>, which
>> is then bitcast to <4 x i8>:
>>
>> %vecinit.i = insertelement <3 x i8> undef, i8 %2, i32 0
>> %vecinit1.i = insertelement <3 x i8> %vecinit.i, i8 %3, i32 1
>> %vecinit4.i = insertelement <3 x i8> %vecinit1.i, i8 %4, i32 2
>>
>> %extractVec = shufflevector <3 x i8> %vecinit4.i, <3 x i8> undef, <4 x
>> i32> <i32 0, i32 1, i32 2, i32 undef>
>> ^^^ the shuffle result should probably be <4 x i8> ????
>>
>
> Thanks for reporting the bug. The result of that shuffle is <4 x i8>; the
> mask has 4 elements:
> http://llvm.org/docs/LangRef.html#shufflevector-instruction
>
> So I think we've exposed a backend bug. Can you file a bug report and
> attach the test files there? Given that this patch fixes a miscompile in
> IR, I'd rather not revert it unless we can't correct the backend in some
> reasonable amount of time.
>
> The test case also suggests that we can limit the fix that this patch
> imposed: if we're shuffling only to extend a series of insertelement ops,
> then that's a good candidate for widening because we are not introducing
> any wider math ops. That's a workaround for the backend bug in this
> particular case, but it doesn't solve the root cause of the crashing.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180930/2c7f50bd/attachment.html>
More information about the llvm-commits
mailing list