summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2016-03-01 19:35:52 +0000
committerOwen Anderson <resistor@mac.com>2016-03-01 19:35:52 +0000
commit7ea02fc7879ccfa9aba47c0dec7d57e8fbeb3b9e (patch)
treeb70ac649bf2480bdf65e8c49174eed1bd09fae7c /llvm/include
parentb3a7935d549c1d73729a4666ec6133e80658ce34 (diff)
downloadbcm5719-llvm-7ea02fc7879ccfa9aba47c0dec7d57e8fbeb3b9e.tar.gz
bcm5719-llvm-7ea02fc7879ccfa9aba47c0dec7d57e8fbeb3b9e.zip
Fix an issue where fast math flags were dropped during scalarization.
Most portions of InstCombine properly propagate fast math flags, but apparently the vector scalarization section was overlooked. llvm-svn: 262376
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/IR/InstrTypes.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/InstrTypes.h b/llvm/include/llvm/IR/InstrTypes.h
index 5091bb40783..ef86eba8135 100644
--- a/llvm/include/llvm/IR/InstrTypes.h
+++ b/llvm/include/llvm/IR/InstrTypes.h
@@ -386,6 +386,15 @@ public:
}
#include "llvm/IR/Instruction.def"
+ static BinaryOperator *CreateWithCopiedFlags(BinaryOps Opc,
+ Value *V1, Value *V2,
+ BinaryOperator *CopyBO,
+ const Twine &Name = "") {
+ BinaryOperator *BO = Create(Opc, V1, V2, Name);
+ BO->copyIRFlags(CopyBO);
+ return BO;
+ }
+
static BinaryOperator *CreateNSW(BinaryOps Opc, Value *V1, Value *V2,
const Twine &Name = "") {
BinaryOperator *BO = Create(Opc, V1, V2, Name);
OpenPOWER on IntegriCloud