blob: 2e278952ba812f9e66f0554d818c82421f0a7540 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt -mtriple=amdgpu12.50-amd-amdhsa -passes=infer-address-spaces -S < %s | FileCheck %s
define void @flat_prefetch_global(ptr addrspace(1) %g) {
; CHECK-LABEL: define void @flat_prefetch_global(
; CHECK-SAME: ptr addrspace(1) [[G:%.*]]) {
; CHECK-NEXT: call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) [[G]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(1) %g to ptr
call void @llvm.amdgcn.flat.prefetch(ptr %f, i32 8)
ret void
}
define void @flat_prefetch_local(ptr addrspace(3) %l) {
; CHECK-LABEL: define void @flat_prefetch_local(
; CHECK-SAME: ptr addrspace(3) [[L:%.*]]) {
; CHECK-NEXT: [[F:%.*]] = addrspacecast ptr addrspace(3) [[L]] to ptr
; CHECK-NEXT: call void @llvm.amdgcn.flat.prefetch(ptr [[F]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(3) %l to ptr
call void @llvm.amdgcn.flat.prefetch(ptr %f, i32 8)
ret void
}
define void @flat_prefetch_global_gep(ptr addrspace(1) %g, i64 %i) {
; CHECK-LABEL: define void @flat_prefetch_global_gep(
; CHECK-SAME: ptr addrspace(1) [[G:%.*]], i64 [[I:%.*]]) {
; CHECK-NEXT: [[P:%.*]] = getelementptr inbounds float, ptr addrspace(1) [[G]], i64 [[I]]
; CHECK-NEXT: call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) [[P]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(1) %g to ptr
%p = getelementptr inbounds float, ptr %f, i64 %i
call void @llvm.amdgcn.flat.prefetch(ptr %p, i32 8)
ret void
}
define void @flat_prefetch_constant(ptr addrspace(4) %c) {
; CHECK-LABEL: define void @flat_prefetch_constant(
; CHECK-SAME: ptr addrspace(4) [[C:%.*]]) {
; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr addrspace(4) [[C]] to ptr addrspace(1)
; CHECK-NEXT: call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) [[TMP1]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(4) %c to ptr
call void @llvm.amdgcn.flat.prefetch(ptr %f, i32 8)
ret void
}
define void @flat_prefetch_constant_32bit(ptr addrspace(6) %c) {
; CHECK-LABEL: define void @flat_prefetch_constant_32bit(
; CHECK-SAME: ptr addrspace(6) [[C:%.*]]) {
; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr addrspace(6) [[C]] to ptr addrspace(1)
; CHECK-NEXT: call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) [[TMP1]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(6) %c to ptr
call void @llvm.amdgcn.flat.prefetch(ptr %f, i32 8)
ret void
}
define void @flat_prefetch_unknown_as(ptr addrspace(999) %u) {
; CHECK-LABEL: define void @flat_prefetch_unknown_as(
; CHECK-SAME: ptr addrspace(999) [[U:%.*]]) {
; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr addrspace(999) [[U]] to ptr addrspace(1)
; CHECK-NEXT: call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) [[TMP1]], i32 8)
; CHECK-NEXT: ret void
;
%f = addrspacecast ptr addrspace(999) %u to ptr
call void @llvm.amdgcn.flat.prefetch(ptr %f, i32 8)
ret void
}