Skip to content

Commit 3b5ec8b

Browse files
scottp101Zuul
authored andcommitted
Add volatile argument to a couple more places for
lddrawvector_indexed and storerawvector_indexed intrinsics. Change-Id: Ib1506baf575e7c1d4e57975b91eab57c149f1417
1 parent 5d32412 commit 3b5ec8b

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

IGC/LLVM3DBuilder/BuiltinsFrontend.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,12 +675,14 @@ class LLVM3DBuilder : public llvm::IGCIRBuilder<T, Inserter>
675675
llvm::Value* srcBuffer,
676676
llvm::Value* offset,
677677
llvm::Value* alignment,
678-
llvm::Type* returnType);
678+
llvm::Type* returnType,
679+
bool isVolatile = false);
679680

680681
llvm::Value* create_indirectStore(
681682
llvm::Value* srcBuffer,
682683
llvm::Value* offset,
683-
llvm::Value* data);
684+
llvm::Value* data,
685+
bool isVolatile = false);
684686

685687
llvm::Value* create_atomicCounterIncrement(llvm::Value* srcBuffer);
686688
llvm::Value* create_atomicCounterDecrement(llvm::Value* srcBuffer);

IGC/LLVM3DBuilder/BuiltinsFrontendDefinitions.hpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3460,7 +3460,8 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectLo
34603460
llvm::Value* srcBuffer,
34613461
llvm::Value* offset,
34623462
llvm::Value* alignment,
3463-
llvm::Type* returnType)
3463+
llvm::Type* returnType,
3464+
bool isVolatile /* false */)
34643465
{
34653466
llvm::Module* module = this->GetInsertBlock()->getParent()->getParent();
34663467
llvm::Type* types[] = {
@@ -3471,14 +3472,15 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectLo
34713472
module,
34723473
llvm::GenISAIntrinsic::GenISA_ldrawvector_indexed,
34733474
types);
3474-
return this->CreateCall3(pfuncLdPtr, srcBuffer, offset, alignment);
3475+
return this->CreateCall4(pfuncLdPtr, srcBuffer, offset, alignment, this->getInt1(isVolatile));
34753476
}
34763477

34773478
template<bool preserveNames, typename T, typename Inserter>
34783479
inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectStore(
34793480
llvm::Value* srcBuffer,
34803481
llvm::Value* offset,
3481-
llvm::Value* data)
3482+
llvm::Value* data,
3483+
bool isVolatile /* false */ )
34823484
{
34833485
llvm::Module* module = this->GetInsertBlock()->getParent()->getParent();
34843486
llvm::Type* types[] = {
@@ -3490,7 +3492,7 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectSt
34903492
llvm::GenISAIntrinsic::GenISA_storerawvector_indexed,
34913493
types);
34923494
llvm::Value* alignment = this->getInt32(data->getType()->getScalarSizeInBits() / 8);
3493-
return this->CreateCall4(pFunc, srcBuffer, offset, data, alignment);
3495+
return this->CreateCall5(pFunc, srcBuffer, offset, data, alignment, this->getInt1(isVolatile));
34943496
}
34953497

34963498
template<bool preserveNames, typename T, typename Inserter>

0 commit comments

Comments
 (0)