[llvm] [SLP] Make getSameOpcode support different instructions if they have same semantics. (PR #112181)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 22 04:35:26 PDT 2024


================
@@ -14935,7 +15108,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) {
       Value *V = Builder.CreateBinOp(
           static_cast<Instruction::BinaryOps>(E->getOpcode()), LHS,
           RHS);
-      propagateIRFlags(V, E->Scalars, VL0, It == MinBWs.end());
+      propagateIRFlags(V, E->Scalars, nullptr, It == MinBWs.end());
----------------
alexey-bataev wrote:

Say, you have something like `{mul nsw, shl, mul nsw, mul nsw}`. For this case you will still emit `mul nsw <4 x >]б b ecause shl will be ignored

https://github.com/llvm/llvm-project/pull/112181


More information about the llvm-commits mailing list