[PATCH] D118264: [DAG] SelectionDAG::getNode(N1,N2) - detect N2 constant vector splats as well as scalars
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 16 02:10:51 PST 2022
RKSimon added a comment.
In D118264#3324466 <https://reviews.llvm.org/D118264#3324466>, @vitalybuka wrote:
> In D118264#3324337 <https://reviews.llvm.org/D118264#3324337>, @RKSimon wrote:
>
>> @vitalybuka Any luck with a repro?
>
> Sorry, busy with other stuff. I'll reply today.
> I assume IR is needed, not source c++?
I can investigate the change in folding in the DAG, but what I'm particularly interested in is how we ended up with %235 - the vector OR with a constant-with-poison - that then gets bitcast to a i512 scalar for a comparison. I'm assuming a SimplifyDemandedVectorElts call or something?
231: ; preds = %115
%232 = call <32 x i16> @llvm.x86.avx512.packusdw.512(<16 x i32> %223, <16 x i32> poison) #14
%233 = and <32 x i16> %232, zeroinitializer
%234 = or <32 x i16> zeroinitializer, %233
%235 = or <32 x i16> %234, <i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 poison, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 poison>
%236 = and <32 x i16> %232, <i16 32767, i16 32767, i16 32767, i16 32767, i16 poison, i16 poison, i16 poison, i16 poison, i16 32767, i16 32767, i16 32767, i16 32767, i16 poison, i16 poison, i16 poison, i16 poison, i16 32767, i16 32767, i16 32767, i16 32767, i16 poison, i16 poison, i16 poison, i16 poison, i16 32767, i16 32767, i16 32767, i16 32767, i16 poison, i16 poison, i16 poison, i16 poison>
%237 = bitcast <32 x i16> %235 to i512
%238 = icmp ne i512 %237, 0
br i1 %238, label %239, label %240, !prof !10
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D118264/new/
https://reviews.llvm.org/D118264
More information about the llvm-commits
mailing list