(original) (raw)

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@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@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(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>
%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
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


--
Neil Henning
Senior Software Engineer Compiler