diff options
author | NimishMishra <42909663+NimishMishra@users.noreply.github.com> | 2025-04-29 20:23:36 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-29 07:53:36 -0700 |
commit | b62afbccc8da8a14d06db68cd58cb48a14d79f91 (patch) | |
tree | 169be9b10321a970b6e63e7363e1afb54f46e8f2 /llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp | |
parent | 6ffccea1c2b804d530c0f7bf3cc92db42b4432c5 (diff) | |
download | llvm-b62afbccc8da8a14d06db68cd58cb48a14d79f91.zip llvm-b62afbccc8da8a14d06db68cd58cb48a14d79f91.tar.gz llvm-b62afbccc8da8a14d06db68cd58cb48a14d79f91.tar.bz2 |
[mlir][OpenMP] Add __atomic_store to AtomicInfo (#121055)
This PR adds functionality for `__atomic_store` libcall in AtomicInfo.
This allows for supporting complex types in `atomic write`.
Fixes https://github.com/llvm/llvm-project/issues/113479
Fixes https://github.com/llvm/llvm-project/issues/115652
Diffstat (limited to 'llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp')
-rw-r--r-- | llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp index 8300c31..01da439 100644 --- a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp +++ b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp @@ -3875,6 +3875,9 @@ TEST_F(OpenMPIRBuilderTest, OMPAtomicWriteFlt) { IRBuilder<> Builder(BB); OpenMPIRBuilder::LocationDescription Loc({Builder.saveIP(), DL}); + BasicBlock *EntryBB = BB; + OpenMPIRBuilder::InsertPointTy AllocaIP(EntryBB, + EntryBB->getFirstInsertionPt()); LLVMContext &Ctx = M->getContext(); Type *Float32 = Type::getFloatTy(Ctx); @@ -3884,7 +3887,8 @@ TEST_F(OpenMPIRBuilderTest, OMPAtomicWriteFlt) { AtomicOrdering AO = AtomicOrdering::Monotonic; Constant *ValToWrite = ConstantFP::get(Float32, 1.0); - Builder.restoreIP(OMPBuilder.createAtomicWrite(Loc, X, ValToWrite, AO)); + Builder.restoreIP( + OMPBuilder.createAtomicWrite(Loc, X, ValToWrite, AO, AllocaIP)); IntegerType *IntCastTy = IntegerType::get(M->getContext(), Float32->getScalarSizeInBits()); @@ -3918,8 +3922,11 @@ TEST_F(OpenMPIRBuilderTest, OMPAtomicWriteInt) { ConstantInt *ValToWrite = ConstantInt::get(Type::getInt32Ty(Ctx), 1U); BasicBlock *EntryBB = BB; + OpenMPIRBuilder::InsertPointTy AllocaIP(EntryBB, + EntryBB->getFirstInsertionPt()); - Builder.restoreIP(OMPBuilder.createAtomicWrite(Loc, X, ValToWrite, AO)); + Builder.restoreIP( + OMPBuilder.createAtomicWrite(Loc, X, ValToWrite, AO, AllocaIP)); StoreInst *StoreofAtomic = nullptr; |