diff options
Diffstat (limited to 'llvm/unittests')
| -rw-r--r-- | llvm/unittests/ADT/APFloatTest.cpp | 83 | ||||
| -rw-r--r-- | llvm/unittests/ADT/TrieRawHashMapTest.cpp | 2 | ||||
| -rw-r--r-- | llvm/unittests/CAS/CASTestConfig.h | 4 | ||||
| -rw-r--r-- | llvm/unittests/IR/AbstractCallSiteTest.cpp | 94 | ||||
| -rw-r--r-- | llvm/unittests/SandboxIR/PassTest.cpp | 6 | ||||
| -rw-r--r-- | llvm/unittests/Support/ScopedPrinterTest.cpp | 2 | ||||
| -rw-r--r-- | llvm/unittests/TargetParser/TargetParserTest.cpp | 7 | ||||
| -rw-r--r-- | llvm/unittests/Transforms/Utils/ValueMapperTest.cpp | 3 | ||||
| -rw-r--r-- | llvm/unittests/Transforms/Vectorize/VPlanTest.cpp | 10 |
9 files changed, 156 insertions, 55 deletions
diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp index 30f0a8e5..fbe96bb 100644 --- a/llvm/unittests/ADT/APFloatTest.cpp +++ b/llvm/unittests/ADT/APFloatTest.cpp @@ -5062,8 +5062,8 @@ TEST(APFloatTest, PPCDoubleDoubleAddSpecial) { std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected, RM) = Tp; { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.add(A2, RM); EXPECT_EQ(Expected, A1.getCategory()) @@ -5072,8 +5072,8 @@ TEST(APFloatTest, PPCDoubleDoubleAddSpecial) { .str(); } { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A2.add(A1, RM); EXPECT_EQ(Expected, A2.getCategory()) @@ -5126,8 +5126,8 @@ TEST(APFloatTest, PPCDoubleDoubleAdd) { std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1], RM) = Tp; { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.add(A2, RM); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -5140,8 +5140,8 @@ TEST(APFloatTest, PPCDoubleDoubleAdd) { .str(); } { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A2.add(A1, RM); EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) @@ -5175,8 +5175,8 @@ TEST(APFloatTest, PPCDoubleDoubleSubtract) { APFloat::roundingMode RM; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1], RM) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.subtract(A2, RM); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -5230,8 +5230,8 @@ TEST(APFloatTest, PPCDoubleDoubleMultiplySpecial) { std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected, RM) = Tp; { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.multiply(A2, RM); EXPECT_EQ(Expected, A1.getCategory()) @@ -5240,8 +5240,8 @@ TEST(APFloatTest, PPCDoubleDoubleMultiplySpecial) { .str(); } { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A2.multiply(A1, RM); EXPECT_EQ(Expected, A2.getCategory()) @@ -5303,8 +5303,8 @@ TEST(APFloatTest, PPCDoubleDoubleMultiply) { std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1], RM) = Tp; { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.multiply(A2, RM); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -5317,8 +5317,8 @@ TEST(APFloatTest, PPCDoubleDoubleMultiply) { .str(); } { - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A2.multiply(A1, RM); EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) @@ -5350,8 +5350,8 @@ TEST(APFloatTest, PPCDoubleDoubleDivide) { APFloat::roundingMode RM; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1], RM) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.divide(A2, RM); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -5383,8 +5383,8 @@ TEST(APFloatTest, PPCDoubleDoubleRemainder) { uint64_t Op1[2], Op2[2], Expected[2]; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1]) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.remainder(A2); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -5418,8 +5418,8 @@ TEST(APFloatTest, PPCDoubleDoubleMod) { uint64_t Op1[2], Op2[2], Expected[2]; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected[0], Expected[1]) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); A1.mod(A2); EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) @@ -6282,8 +6282,8 @@ TEST(APFloatTest, PPCDoubleDoubleCompare) { APFloat::cmpResult Expected; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); EXPECT_EQ(Expected, A1.compare(A2)) << formatv("compare(({0:x} + {1:x}), ({2:x} + {3:x}))", Op1[0], Op1[1], Op2[0], Op2[1]) @@ -6410,8 +6410,8 @@ TEST(APFloatTest, PPCDoubleDoubleBitwiseIsEqual) { bool Expected; std::tie(Op1[0], Op1[1], Op2[0], Op2[1], Expected) = Tp; - APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); - APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); + APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, Op1)); + APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, Op2)); EXPECT_EQ(Expected, A1.bitwiseIsEqual(A2)) << formatv("({0:x} + {1:x}) = ({2:x} + {3:x})", Op1[0], Op1[1], Op2[0], Op2[1]) @@ -6423,16 +6423,15 @@ TEST(APFloatTest, PPCDoubleDoubleHashValue) { uint64_t Data1[] = {0x3ff0000000000001ull, 0x0000000000000001ull}; uint64_t Data2[] = {0x3ff0000000000001ull, 0}; // The hash values are *hopefully* different. - EXPECT_NE( - hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data1))), - hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data2)))); + EXPECT_NE(hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, Data1))), + hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, Data2)))); } TEST(APFloatTest, PPCDoubleDoubleChangeSign) { uint64_t Data[] = { 0x400f000000000000ull, 0xbcb0000000000000ull, }; - APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)); + APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, Data)); { APFloat Actual = APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1")); @@ -6452,14 +6451,14 @@ TEST(APFloatTest, PPCDoubleDoubleFactories) { uint64_t Data[] = { 0, 0, }; - EXPECT_EQ(APInt(128, 2, Data), + EXPECT_EQ(APInt(128, Data), APFloat::getZero(APFloat::PPCDoubleDouble()).bitcastToAPInt()); } { uint64_t Data[] = { 0x7fefffffffffffffull, 0x7c8ffffffffffffeull, }; - EXPECT_EQ(APInt(128, 2, Data), + EXPECT_EQ(APInt(128, Data), APFloat::getLargest(APFloat::PPCDoubleDouble()).bitcastToAPInt()); } { @@ -6467,12 +6466,12 @@ TEST(APFloatTest, PPCDoubleDoubleFactories) { 0x0000000000000001ull, 0, }; EXPECT_EQ( - APInt(128, 2, Data), + APInt(128, Data), APFloat::getSmallest(APFloat::PPCDoubleDouble()).bitcastToAPInt()); } { uint64_t Data[] = {0x0360000000000000ull, 0}; - EXPECT_EQ(APInt(128, 2, Data), + EXPECT_EQ(APInt(128, Data), APFloat::getSmallestNormalized(APFloat::PPCDoubleDouble()) .bitcastToAPInt()); } @@ -6481,7 +6480,7 @@ TEST(APFloatTest, PPCDoubleDoubleFactories) { 0x8000000000000000ull, 0x0000000000000000ull, }; EXPECT_EQ( - APInt(128, 2, Data), + APInt(128, Data), APFloat::getZero(APFloat::PPCDoubleDouble(), true).bitcastToAPInt()); } { @@ -6489,14 +6488,14 @@ TEST(APFloatTest, PPCDoubleDoubleFactories) { 0xffefffffffffffffull, 0xfc8ffffffffffffeull, }; EXPECT_EQ( - APInt(128, 2, Data), + APInt(128, Data), APFloat::getLargest(APFloat::PPCDoubleDouble(), true).bitcastToAPInt()); } { uint64_t Data[] = { 0x8000000000000001ull, 0x0000000000000000ull, }; - EXPECT_EQ(APInt(128, 2, Data), + EXPECT_EQ(APInt(128, Data), APFloat::getSmallest(APFloat::PPCDoubleDouble(), true) .bitcastToAPInt()); } @@ -6504,7 +6503,7 @@ TEST(APFloatTest, PPCDoubleDoubleFactories) { uint64_t Data[] = { 0x8360000000000000ull, 0x0000000000000000ull, }; - EXPECT_EQ(APInt(128, 2, Data), + EXPECT_EQ(APInt(128, Data), APFloat::getSmallestNormalized(APFloat::PPCDoubleDouble(), true) .bitcastToAPInt()); } @@ -6523,7 +6522,7 @@ TEST(APFloatTest, PPCDoubleDoubleIsDenormal) { 0x4010000000000000ull, 0x4008000000000000ull, }; EXPECT_TRUE( - APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)).isDenormal()); + APFloat(APFloat::PPCDoubleDouble(), APInt(128, Data)).isDenormal()); } } @@ -6533,7 +6532,7 @@ TEST(APFloatTest, PPCDoubleDoubleScalbn) { 0x4008000000000000ull, 0x3cb8000000000000ull, }; APFloat Result = - scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), 1, + scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, Input)), 1, APFloat::rmNearestTiesToEven); // 6.0 + 6.0 << 53 EXPECT_EQ(0x4018000000000000ull, Result.bitcastToAPInt().getRawData()[0]); diff --git a/llvm/unittests/ADT/TrieRawHashMapTest.cpp b/llvm/unittests/ADT/TrieRawHashMapTest.cpp index c9081f5..7a95f1d 100644 --- a/llvm/unittests/ADT/TrieRawHashMapTest.cpp +++ b/llvm/unittests/ADT/TrieRawHashMapTest.cpp @@ -64,7 +64,7 @@ public: } void destroyTrie() { Trie.reset(); } - ~SimpleTrieHashMapTest() { destroyTrie(); } + ~SimpleTrieHashMapTest() override { destroyTrie(); } // Use the number itself as hash to test the pathological case. static HashType hash(uint64_t Num) { diff --git a/llvm/unittests/CAS/CASTestConfig.h b/llvm/unittests/CAS/CASTestConfig.h index c08968b..8d3c553 100644 --- a/llvm/unittests/CAS/CASTestConfig.h +++ b/llvm/unittests/CAS/CASTestConfig.h @@ -42,8 +42,8 @@ protected: auto TD = GetParam()(++(*NextCASIndex)); return std::move(TD.Cache); } - void SetUp() { NextCASIndex = 0; } - void TearDown() { NextCASIndex = std::nullopt; } + void SetUp() override { NextCASIndex = 0; } + void TearDown() override { NextCASIndex = std::nullopt; } }; #endif diff --git a/llvm/unittests/IR/AbstractCallSiteTest.cpp b/llvm/unittests/IR/AbstractCallSiteTest.cpp index ddb1091..623d1b3 100644 --- a/llvm/unittests/IR/AbstractCallSiteTest.cpp +++ b/llvm/unittests/IR/AbstractCallSiteTest.cpp @@ -6,8 +6,9 @@ // //===----------------------------------------------------------------------===// -#include "llvm/AsmParser/Parser.h" #include "llvm/IR/AbstractCallSite.h" +#include "llvm/AsmParser/Parser.h" +#include "llvm/IR/Argument.h" #include "llvm/IR/Function.h" #include "llvm/IR/Module.h" #include "llvm/Support/SourceMgr.h" @@ -51,5 +52,96 @@ TEST(AbstractCallSite, CallbackCall) { EXPECT_TRUE(ACS); EXPECT_TRUE(ACS.isCallbackCall()); EXPECT_TRUE(ACS.isCallee(CallbackUse)); + EXPECT_EQ(ACS.getCalleeUseForCallback(), *CallbackUse); EXPECT_EQ(ACS.getCalledFunction(), Callback); + + // The callback metadata {CallbackNo, Arg0No, ..., isVarArg} = {1, -1, true} + EXPECT_EQ(ACS.getCallArgOperandNoForCallee(), 1); + // Though the callback metadata only specifies ONE unfixed argument No, the + // callback callee is vararg, hence the third arg is also considered as + // another arg for the callback. + EXPECT_EQ(ACS.getNumArgOperands(), 2u); + Argument *Param0 = Callback->getArg(0), *Param1 = Callback->getArg(1); + ASSERT_TRUE(Param0 && Param1); + EXPECT_EQ(ACS.getCallArgOperandNo(*Param0), -1); + EXPECT_EQ(ACS.getCallArgOperandNo(*Param1), 2); +} + +TEST(AbstractCallSite, DirectCall) { + LLVMContext C; + + const char *IR = "declare void @bar(i32 %x, i32 %y)\n" + "define void @foo() {\n" + " call void @bar(i32 1, i32 2)\n" + " ret void\n" + "}\n"; + + std::unique_ptr<Module> M = parseIR(C, IR); + ASSERT_TRUE(M); + + Function *Callee = M->getFunction("bar"); + ASSERT_NE(Callee, nullptr); + + const Use *DirectCallUse = Callee->getSingleUndroppableUse(); + ASSERT_NE(DirectCallUse, nullptr); + + AbstractCallSite ACS(DirectCallUse); + EXPECT_TRUE(ACS); + EXPECT_TRUE(ACS.isDirectCall()); + EXPECT_TRUE(ACS.isCallee(DirectCallUse)); + EXPECT_EQ(ACS.getCalledFunction(), Callee); + EXPECT_EQ(ACS.getNumArgOperands(), 2u); + Argument *ArgX = Callee->getArg(0); + ASSERT_NE(ArgX, nullptr); + Value *CAO1 = ACS.getCallArgOperand(*ArgX); + Value *CAO2 = ACS.getCallArgOperand(0); + ASSERT_NE(CAO2, nullptr); + // The two call arg operands should be the same object, since they are both + // the first argument of the call. + EXPECT_EQ(CAO2, CAO1); + + ConstantInt *FirstArgInt = dyn_cast<ConstantInt>(CAO2); + ASSERT_NE(FirstArgInt, nullptr); + EXPECT_EQ(FirstArgInt->getZExtValue(), 1ull); + + EXPECT_EQ(ACS.getCallArgOperandNo(*ArgX), 0); + EXPECT_EQ(ACS.getCallArgOperandNo(0), 0); + EXPECT_EQ(ACS.getCallArgOperandNo(1), 1); +} + +TEST(AbstractCallSite, IndirectCall) { + LLVMContext C; + + const char *IR = "define void @foo(ptr %0) {\n" + " call void %0(i32 1, i32 2)\n" + " ret void\n" + "}\n"; + + std::unique_ptr<Module> M = parseIR(C, IR); + ASSERT_TRUE(M); + + Function *Fun = M->getFunction("foo"); + ASSERT_NE(Fun, nullptr); + + Argument *ArgAsCallee = Fun->getArg(0); + ASSERT_NE(ArgAsCallee, nullptr); + + const Use *IndCallUse = ArgAsCallee->getSingleUndroppableUse(); + ASSERT_NE(IndCallUse, nullptr); + + AbstractCallSite ACS(IndCallUse); + EXPECT_TRUE(ACS); + EXPECT_TRUE(ACS.isIndirectCall()); + EXPECT_TRUE(ACS.isCallee(IndCallUse)); + EXPECT_EQ(ACS.getCalledFunction(), nullptr); + EXPECT_EQ(ACS.getCalledOperand(), ArgAsCallee); + EXPECT_EQ(ACS.getNumArgOperands(), 2u); + Value *CalledOperand = ACS.getCallArgOperand(0); + ASSERT_NE(CalledOperand, nullptr); + ConstantInt *FirstArgInt = dyn_cast<ConstantInt>(CalledOperand); + ASSERT_NE(FirstArgInt, nullptr); + EXPECT_EQ(FirstArgInt->getZExtValue(), 1ull); + + EXPECT_EQ(ACS.getCallArgOperandNo(0), 0); + EXPECT_EQ(ACS.getCallArgOperandNo(1), 1); } diff --git a/llvm/unittests/SandboxIR/PassTest.cpp b/llvm/unittests/SandboxIR/PassTest.cpp index 0c813b2..1a32702 100644 --- a/llvm/unittests/SandboxIR/PassTest.cpp +++ b/llvm/unittests/SandboxIR/PassTest.cpp @@ -84,7 +84,9 @@ define void @foo() { class TestNamePass final : public FunctionPass { public: TestNamePass(llvm::StringRef Name) : FunctionPass(Name) {} - bool runOnFunction(Function &F, const Analyses &A) { return false; } + bool runOnFunction(Function &F, const Analyses &A) override { + return false; + } }; EXPECT_DEATH(TestNamePass("white space"), ".*whitespace.*"); EXPECT_DEATH(TestNamePass("-dash"), ".*start with.*"); @@ -146,7 +148,7 @@ define i8 @foo(i8 %v0, i8 %v1) { class TestNamePass final : public RegionPass { public: TestNamePass(llvm::StringRef Name) : RegionPass(Name) {} - bool runOnRegion(Region &F, const Analyses &A) { return false; } + bool runOnRegion(Region &F, const Analyses &A) override { return false; } }; EXPECT_DEATH(TestNamePass("white space"), ".*whitespace.*"); EXPECT_DEATH(TestNamePass("-dash"), ".*start with.*"); diff --git a/llvm/unittests/Support/ScopedPrinterTest.cpp b/llvm/unittests/Support/ScopedPrinterTest.cpp index 1e2b138..280b3ee 100644 --- a/llvm/unittests/Support/ScopedPrinterTest.cpp +++ b/llvm/unittests/Support/ScopedPrinterTest.cpp @@ -109,7 +109,7 @@ protected: verifyJSONScopedPrinter(JSONExpectedOut, Func); } - void TearDown() { + void TearDown() override { // JSONScopedPrinter fails an assert if nothing's been printed. if (!HasPrintedToJSON) JSONWriter.printString(""); diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp index ef6aeae..759109a 100644 --- a/llvm/unittests/TargetParser/TargetParserTest.cpp +++ b/llvm/unittests/TargetParser/TargetParserTest.cpp @@ -518,6 +518,11 @@ INSTANTIATE_TEST_SUITE_P( ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_MVE | ARM::AEK_FP | ARM::AEK_RAS | ARM::AEK_LOB | ARM::AEK_FP16 | ARM::AEK_PACBTI, "8.1-M.Mainline"), + ARMCPUTestParams<uint64_t>( + "star-mc3", "armv8.1-m.main", "fp-armv8-fullfp16-d16", + ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_MVE | ARM::AEK_FP | + ARM::AEK_RAS | ARM::AEK_LOB | ARM::AEK_FP16 | ARM::AEK_PACBTI, + "8.1-M.Mainline"), ARMCPUTestParams<uint64_t>("iwmmxt", "iwmmxt", "none", ARM::AEK_NONE, "iwmmxt"), ARMCPUTestParams<uint64_t>("xscale", "xscale", "none", ARM::AEK_NONE, @@ -528,7 +533,7 @@ INSTANTIATE_TEST_SUITE_P( "7-S")), ARMCPUTestParams<uint64_t>::PrintToStringParamName); -static constexpr unsigned NumARMCPUArchs = 94; +static constexpr unsigned NumARMCPUArchs = 95; TEST(TargetParserTest, testARMCPUArchList) { SmallVector<StringRef, NumARMCPUArchs> List; diff --git a/llvm/unittests/Transforms/Utils/ValueMapperTest.cpp b/llvm/unittests/Transforms/Utils/ValueMapperTest.cpp index 86ad41f..e39cd70 100644 --- a/llvm/unittests/Transforms/Utils/ValueMapperTest.cpp +++ b/llvm/unittests/Transforms/Utils/ValueMapperTest.cpp @@ -401,7 +401,8 @@ TEST(ValueMapperTest, mapValueLocalAsMetadataToConstant) { class TestTypeRemapper : public ValueMapTypeRemapper { public: TestTypeRemapper(Type *Ty) : DstTy(Ty) { } - Type *remapType(Type *srcTy) { return DstTy; } + Type *remapType(Type *srcTy) override { return DstTy; } + private: Type *DstTy; }; diff --git a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp index c1791dfa..59a9ea1 100644 --- a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp +++ b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp @@ -1132,7 +1132,8 @@ TEST_F(VPRecipeTest, CastVPWidenMemoryRecipeToVPUserAndVPDef) { new LoadInst(Int32, PoisonValue::get(Int32Ptr), "", false, Align(1)); VPValue *Addr = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 1)); VPValue *Mask = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 2)); - VPWidenLoadRecipe Recipe(*Load, Addr, Mask, true, false, {}, {}); + VPWidenLoadRecipe Recipe(*Load, Addr, Mask, true, false, Load->getAlign(), {}, + {}); EXPECT_TRUE(isa<VPUser>(&Recipe)); VPRecipeBase *BaseR = &Recipe; EXPECT_TRUE(isa<VPUser>(BaseR)); @@ -1249,7 +1250,8 @@ TEST_F(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) { new LoadInst(Int32, PoisonValue::get(Int32Ptr), "", false, Align(1)); VPValue *Mask = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 1)); VPValue *Addr = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 2)); - VPWidenLoadRecipe Recipe(*Load, Addr, Mask, true, false, {}, {}); + VPWidenLoadRecipe Recipe(*Load, Addr, Mask, true, false, Load->getAlign(), + {}, {}); EXPECT_FALSE(Recipe.mayHaveSideEffects()); EXPECT_TRUE(Recipe.mayReadFromMemory()); EXPECT_FALSE(Recipe.mayWriteToMemory()); @@ -1263,8 +1265,8 @@ TEST_F(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) { VPValue *Mask = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 1)); VPValue *Addr = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 2)); VPValue *StoredV = Plan.getOrAddLiveIn(ConstantInt::get(Int32, 3)); - VPWidenStoreRecipe Recipe(*Store, Addr, StoredV, Mask, false, false, {}, - {}); + VPWidenStoreRecipe Recipe(*Store, Addr, StoredV, Mask, false, false, + Store->getAlign(), {}, {}); EXPECT_TRUE(Recipe.mayHaveSideEffects()); EXPECT_FALSE(Recipe.mayReadFromMemory()); EXPECT_TRUE(Recipe.mayWriteToMemory()); |
