aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp')
-rw-r--r--llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
index bc1687c..2026824 100644
--- a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+++ b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
@@ -5397,19 +5397,29 @@ TEST_F(OpenMPIRBuilderTest, CreateTask) {
ConstantInt *DataSize =
dyn_cast<ConstantInt>(TaskAllocCall->getArgOperand(3));
ASSERT_NE(DataSize, nullptr);
- EXPECT_EQ(DataSize->getSExtValue(), 24); // 64-bit pointer + 128-bit integer
+ EXPECT_EQ(DataSize->getSExtValue(), 40);
- // TODO: Verify size of shared clause variables
+ ConstantInt *SharedsSize =
+ dyn_cast<ConstantInt>(TaskAllocCall->getOperand(4));
+ EXPECT_EQ(SharedsSize->getSExtValue(),
+ 24); // 64-bit pointer + 128-bit integer
// Verify Wrapper function
Function *WrapperFunc =
dyn_cast<Function>(TaskAllocCall->getArgOperand(5)->stripPointerCasts());
ASSERT_NE(WrapperFunc, nullptr);
+
+ LoadInst *SharedsLoad = dyn_cast<LoadInst>(WrapperFunc->begin()->begin());
+ ASSERT_NE(SharedsLoad, nullptr);
+ EXPECT_EQ(SharedsLoad->getPointerOperand(), WrapperFunc->getArg(1));
+
EXPECT_FALSE(WrapperFunc->isDeclaration());
- CallInst *OutlinedFnCall = dyn_cast<CallInst>(WrapperFunc->begin()->begin());
+ CallInst *OutlinedFnCall =
+ dyn_cast<CallInst>(++WrapperFunc->begin()->begin());
ASSERT_NE(OutlinedFnCall, nullptr);
EXPECT_EQ(WrapperFunc->getArg(0)->getType(), Builder.getInt32Ty());
- EXPECT_EQ(OutlinedFnCall->getArgOperand(0), WrapperFunc->getArg(1));
+ EXPECT_EQ(OutlinedFnCall->getArgOperand(0),
+ WrapperFunc->getArg(1)->uses().begin()->getUser());
// Verify the presence of `trunc` and `icmp` instructions in Outlined function
Function *OutlinedFn = OutlinedFnCall->getCalledFunction();