@@ -3460,7 +3460,8 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectLo
3460
3460
llvm::Value* srcBuffer,
3461
3461
llvm::Value* offset,
3462
3462
llvm::Value* alignment,
3463
- llvm::Type* returnType)
3463
+ llvm::Type* returnType,
3464
+ bool isVolatile /* false */ )
3464
3465
{
3465
3466
llvm::Module* module = this ->GetInsertBlock ()->getParent ()->getParent ();
3466
3467
llvm::Type* types[] = {
@@ -3471,14 +3472,15 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectLo
3471
3472
module ,
3472
3473
llvm::GenISAIntrinsic::GenISA_ldrawvector_indexed,
3473
3474
types);
3474
- return this ->CreateCall3 (pfuncLdPtr, srcBuffer, offset, alignment);
3475
+ return this ->CreateCall4 (pfuncLdPtr, srcBuffer, offset, alignment, this -> getInt1 (isVolatile) );
3475
3476
}
3476
3477
3477
3478
template <bool preserveNames, typename T, typename Inserter>
3478
3479
inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectStore(
3479
3480
llvm::Value* srcBuffer,
3480
3481
llvm::Value* offset,
3481
- llvm::Value* data)
3482
+ llvm::Value* data,
3483
+ bool isVolatile /* false */ )
3482
3484
{
3483
3485
llvm::Module* module = this ->GetInsertBlock ()->getParent ()->getParent ();
3484
3486
llvm::Type* types[] = {
@@ -3490,7 +3492,7 @@ inline llvm::Value* LLVM3DBuilder<preserveNames, T, Inserter>::create_indirectSt
3490
3492
llvm::GenISAIntrinsic::GenISA_storerawvector_indexed,
3491
3493
types);
3492
3494
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) );
3494
3496
}
3495
3497
3496
3498
template <bool preserveNames, typename T, typename Inserter>
0 commit comments