aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Verifier.cpp
diff options
context:
space:
mode:
authorStanislav Mekhanoshin <rampitec@users.noreply.github.com>2024-09-13 11:14:28 -0700
committerGitHub <noreply@github.com>2024-09-13 11:14:28 -0700
commitd0e7714de73b8b657dca1706e676027d42bbb775 (patch)
tree7993bf1cecf9200d113582d147797dec9b56303c /llvm/lib/IR/Verifier.cpp
parent4c040c027575f3a30dc94bfab4c975567195bdc7 (diff)
downloadllvm-d0e7714de73b8b657dca1706e676027d42bbb775.zip
llvm-d0e7714de73b8b657dca1706e676027d42bbb775.tar.gz
llvm-d0e7714de73b8b657dca1706e676027d42bbb775.tar.bz2
[AMDGPU] Error on non-global pointer with s_prefetch_data (#107624)
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r--llvm/lib/IR/Verifier.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index d8f3bab..06a67346f 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -114,6 +114,7 @@
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
+#include "llvm/Support/AMDGPUAddrSpace.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
@@ -6281,6 +6282,13 @@ void Verifier::visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call) {
"Value for inactive lanes must be a VGPR function argument", &Call);
break;
}
+ case Intrinsic::amdgcn_s_prefetch_data: {
+ Check(
+ AMDGPU::isFlatGlobalAddrSpace(
+ Call.getArgOperand(0)->getType()->getPointerAddressSpace()),
+ "llvm.amdgcn.s.prefetch.data only supports global or constant memory");
+ break;
+ }
case Intrinsic::nvvm_setmaxnreg_inc_sync_aligned_u32:
case Intrinsic::nvvm_setmaxnreg_dec_sync_aligned_u32: {
Value *V = Call.getArgOperand(0);