[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