[PATCH] D123523: [DAG] Add non-uniform vector support to (shl (srl x,  c1), c2) -> (and (shift x, c3))
    Simon Pilgrim via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Apr 12 01:31:26 PDT 2022
    
    
  
RKSimon added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:8948
+      SDValue Mask = DAG.getAllOnesConstant(DL, VT);
+      Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, N01);
+      Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, Diff);
----------------
craig.topper wrote:
> Can these two SHL of mask be replaced with
> 
> ```
> Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, N1)
> ```
> 
> As far as I can tell we're shifting by N01 + (N1 - N01) which should just be N1?
Agreed: https://alive2.llvm.org/ce/z/rf8VHG
I'll add an explicit test and update the patch.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123523/new/
https://reviews.llvm.org/D123523
    
    
More information about the llvm-commits
mailing list