[PATCH] D17585: Fix failure of InstCombine to propagate fast math flags when scalarizing vector arithmetic.

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 26 16:40:40 PST 2016

arsenm added inline comments.

Comment at: lib/Transforms/InstCombine/InstCombineVectorOps.cpp:108-110
@@ -107,4 +107,5 @@
-      Value *newPHIUser = InsertNewInstWith(
-          BinaryOperator::Create(B0->getOpcode(), scalarPHI, Op), *B0);
+      BinaryOperator *newPHIUser = cast<BinaryOperator>(InsertNewInstWith(
+          BinaryOperator::Create(B0->getOpcode(), scalarPHI, Op), *B0));
+      newPHIUser->copyIRFlags(B0);
       scalarPHI->addIncoming(newPHIUser, inBB);
resistor wrote:
> arsenm wrote:
> > Should a BinaryOperator::CreateWithFlags be added? It already has CreateNSW etc.
> It would have to be something like BinaryOperator::CreateWithCopiedFlags, because there's not simple "give me all the flags" methods exposed on BinaryOperator.  Seems a little awkward, but maybe it's still better?
Probably. It seems like a mess to have all of these separate copies everywhere this is needed



More information about the llvm-commits mailing list