diff options
author | Michael Ilseman <milseman@apple.com> | 2013-12-05 00:32:09 +0000 |
---|---|---|
committer | Michael Ilseman <milseman@apple.com> | 2013-12-05 00:32:09 +0000 |
commit | be92bcb3419e37aacf02acaf989880d0e8238866 (patch) | |
tree | 8d2edc445abfb8d674e78fe2b547666b34429392 /llvm/unittests/IR/IRBuilderTest.cpp | |
parent | 1c70b6795ba4c4c221480c9577e138652de1175c (diff) | |
download | llvm-be92bcb3419e37aacf02acaf989880d0e8238866.zip llvm-be92bcb3419e37aacf02acaf989880d0e8238866.tar.gz llvm-be92bcb3419e37aacf02acaf989880d0e8238866.tar.bz2 |
Use present fast-math flags when applicable in CreateBinOp
We were previously not adding fast-math flags through CreateBinOp()
when it happened to be making a floating point binary operator. This
patch updates it to do so similarly to directly calling CreateF*().
llvm-svn: 196438
Diffstat (limited to 'llvm/unittests/IR/IRBuilderTest.cpp')
-rw-r--r-- | llvm/unittests/IR/IRBuilderTest.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp index 2f390f7..fcb5677 100644 --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -147,6 +147,13 @@ TEST_F(IRBuilderTest, FastMathFlags) { FAdd = cast<Instruction>(F); EXPECT_TRUE(FAdd->hasNoNaNs()); + // Now, try it with CreateBinOp + F = Builder.CreateBinOp(Instruction::FAdd, F, F); + EXPECT_TRUE(Builder.getFastMathFlags().any()); + ASSERT_TRUE(isa<Instruction>(F)); + FAdd = cast<Instruction>(F); + EXPECT_TRUE(FAdd->hasNoNaNs()); + F = Builder.CreateFDiv(F, F); EXPECT_TRUE(Builder.getFastMathFlags().any()); EXPECT_TRUE(Builder.getFastMathFlags().UnsafeAlgebra); |