[PATCH] D60214: [DAGCombiner] move splat-shuffle after binop with splat constant

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 17 08:33:31 PDT 2019


RKSimon added a comment.

A couple of minors but this looks almost ready to me, the avx512 broadcast folds are a known issue



================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18721
+      // did not).
+      return IsShufOp0 ? DAG.getNode(Opcode, DL, VT, UndefV, RHS).isUndef()
+                       : DAG.getNode(Opcode, DL, VT, LHS, UndefV).isUndef();
----------------
Like in getKnownUndefForVectorBinop - add a TODO about not creating nodes on the fly.


================
Comment at: llvm/test/CodeGen/ARM/reg_sequence.ll:277
+; CHECK: vmul.f32 q8, q8, q[[Q0]]
 ; CHECK: vadd.f32 q8, q8, q8
   %0 = shufflevector <4 x float> zeroinitializer, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1]
----------------
Add the other checks for this test to trunk - to show the full codegen delta in this patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60214/new/

https://reviews.llvm.org/D60214





More information about the llvm-commits mailing list