[llvm-commits] [llvm] r168815 - /llvm/trunk/unittests/VMCore/IRBuilderTest.cpp

Michael Ilseman milseman at apple.com
Wed Nov 28 13:24:43 PST 2012


Yeah, I had a mis-merge. Should be corrected now.

On Nov 28, 2012, at 1:23 PM, Chandler Carruth <chandlerc at google.com> wrote:

> On Wed, Nov 28, 2012 at 1:19 PM, Michael Ilseman <milseman at apple.com> wrote:
>> Author: milseman
>> Date: Wed Nov 28 15:19:52 2012
>> New Revision: 168815
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=168815&view=rev
>> Log:
>> Fixed bad test case
> 
> Not sure how this is fixing a test case, it appears to be *adding* a
> test case...
>> 
>> Modified:
>>    llvm/trunk/unittests/VMCore/IRBuilderTest.cpp
>> 
>> Modified: llvm/trunk/unittests/VMCore/IRBuilderTest.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/VMCore/IRBuilderTest.cpp?rev=168815&r1=168814&r2=168815&view=diff
>> ==============================================================================
>> --- llvm/trunk/unittests/VMCore/IRBuilderTest.cpp (original)
>> +++ llvm/trunk/unittests/VMCore/IRBuilderTest.cpp Wed Nov 28 15:19:52 2012
>> @@ -166,4 +166,59 @@
>> 
>> }
>> 
>> +TEST_F(IRBuilderTest, FastMathFlags) {
>> +  IRBuilder<> Builder(BB);
>> +  Value *F;
>> +  Instruction *FDiv, *FAdd;
>> +
>> +  F = Builder.CreateLoad(GV);
>> +  F = Builder.CreateFAdd(F, F);
>> +
>> +  EXPECT_FALSE(Builder.getFastMathFlags().any());
>> +  ASSERT_TRUE(isa<Instruction>(F));
>> +  FAdd = cast<Instruction>(F);
>> +  EXPECT_FALSE(FAdd->hasNoNaNs());
>> +
>> +  FastMathFlags FMF;
>> +  Builder.SetFastMathFlags(FMF);
>> +
>> +  F = Builder.CreateFAdd(F, F);
>> +  EXPECT_FALSE(Builder.getFastMathFlags().any());
>> +
>> +  FMF.UnsafeAlgebra = true;
>> +  Builder.SetFastMathFlags(FMF);
>> +
>> +  F = Builder.CreateFAdd(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);
>> +  ASSERT_TRUE(isa<Instruction>(F));
>> +  FDiv = cast<Instruction>(F);
>> +  EXPECT_TRUE(FDiv->hasAllowReciprocal());
>> +
>> +  Builder.clearFastMathFlags();
>> +
>> +  F = Builder.CreateFDiv(F, F);
>> +  ASSERT_TRUE(isa<Instruction>(F));
>> +  FDiv = cast<Instruction>(F);
>> +  EXPECT_FALSE(FDiv->hasAllowReciprocal());
>> +
>> +  FMF.clear();
>> +  FMF.AllowReciprocal = true;
>> +  Builder.SetFastMathFlags(FMF);
>> +
>> +  F = Builder.CreateFDiv(F, F);
>> +  EXPECT_TRUE(Builder.getFastMathFlags().any());
>> +  EXPECT_TRUE(Builder.getFastMathFlags().AllowReciprocal);
>> +  ASSERT_TRUE(isa<Instruction>(F));
>> +  FDiv = cast<Instruction>(F);
>> +  EXPECT_TRUE(FDiv->hasAllowReciprocal());
>> +
>> +}
>> +
>> }
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list