[llvm-dev] SLP Vectorizer bug in trunk

Anton Afanasyev via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 31 05:53:09 PDT 2021


Discussed here https://reviews.llvm.org/D108703#2974289 and reverted the
patch for a while. Thanks for the reproducer!

As for the bugzilla (your another question) -- AFAIK migration to something
like github issue tracker isn't planned.

  Thank,
    Anton

вт, 31 авг. 2021 г. в 13:11, Neil Henning <neil.henning at unity3d.com>:

> Hey Anton,
>
> Ok cool! No rush on a fix our end - I just speculatively (and
> intermittently) bump our trunk version to ensure we stay in lock-step with
> any of the frequent API changes that tip of tree brings.
>
> Cheers,
> -Neil.
>
> On Tue, Aug 31, 2021 at 10:53 AM Anton Afanasyev <
> anton.a.afanasyev at gmail.com> wrote:
>
>> Hi Neil,
>> it looks like this bug was introduced by this commit:
>> https://reviews.llvm.org/rGa36bc873a269dca0c5399d72bfdd42d3ddc72671
>> I'm to report this and revert it if no fix in short time.
>>   Thanks,
>>     Anton
>>
>> вт, 31 авг. 2021 г. в 11:20, Neil Henning via llvm-dev <
>> llvm-dev at lists.llvm.org>:
>>
>>> Hey list,
>>>
>>> I don't have bugzilla (reasons - incidentally is there anyone working on
>>> a more sane way to report bugs yet?).
>>>
>>> Between LLVM 13 rc2 and trunk I've got some new fun fail in the SLP
>>> vectorizer. I'll attach the repro below (I could repro it with opt
>>> --slp-vectorizer test.ll) - fails with:
>>>
>>> Assertion failed: !isa<PHINode>(I) && !isVectorLikeInstWithConstOps(I)
>>> && "phi nodes/insertelements/extractelements/extractvalues don't need to "
>>> "be scheduled", file ..\lib\Transforms\Vectorize\SLPVectorizer.cpp, line
>>> 6096
>>>
>>> Anyone know what has changed in the short time from 13 -> trunk that'd
>>> cause this?
>>>
>>> define void @test([4 x float]* nocapture %o, [2 x float]* nocapture
>>> nonnull readonly dereferenceable(8) %a, [2 x float]* nocapture nonnull
>>> readonly dereferenceable(8) %b, i32 signext %component) {
>>> entry:
>>>   %0 = bitcast [2 x float]* %a to <2 x float>*
>>>   %1 = load <2 x float>, <2 x float>* %0, align 1
>>>   %2 = bitcast [2 x float]* %b to <2 x float>*
>>>   %3 = load <2 x float>, <2 x float>* %2, align 1
>>>   %4 = trunc i32 %component to i8
>>>   %5 = shufflevector <2 x float> %1, <2 x float> %3, <8 x i32> <i32 0,
>>> i32 1, i32 undef, i32 undef, i32 2, i32 3, i32 undef, i32 undef>
>>>   %6 = extractelement <8 x float> %5, i8 %4
>>>   %7 = insertelement <4 x float> undef, float %6, i64 0
>>>   %8 = extractelement <2 x float> %3, i32 1
>>>   %9 = insertelement <4 x float> %7, float %8, i64 1
>>>   %10 = extractelement <2 x float> %1, i32 1
>>>   %11 = insertelement <4 x float> %9, float %10, i64 2
>>>   %12 = insertelement <4 x float> %11, float %6, i64 3
>>>   %13 = bitcast [4 x float]* %o to <4 x float>*
>>>   store <4 x float> %12, <4 x float>* %13, align 1
>>>   ret void
>>> }
>>>
>>> Thanks for any help,
>>> -Neil.
>>>
>>> --
>>> Neil Henning
>>> Senior Software Engineer Compiler
>>> unity.com
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>>
>
> --
> Neil Henning
> Senior Software Engineer Compiler
> unity.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210831/bd0b662a/attachment.html>


More information about the llvm-dev mailing list