blob: dbd2662de42743ac87289a8dbb01cd3f0d600111 [file] [log] [blame]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S -passes=infer-address-spaces %s | FileCheck %s
target triple = "nvptx64-nvidia-cuda"
define ptx_kernel i32 @test_kernel(ptr %a, ptr byval(i32) %b) {
; CHECK-LABEL: define ptx_kernel i32 @test_kernel(
; CHECK-SAME: ptr [[A:%.*]], ptr byval(i32) [[B:%.*]]) {
; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[A]] to ptr addrspace(1)
; CHECK-NEXT: [[V1:%.*]] = load i32, ptr addrspace(1) [[TMP1]], align 4
; CHECK-NEXT: [[V2:%.*]] = load i32, ptr [[B]], align 4
; CHECK-NEXT: [[SUM:%.*]] = add i32 [[V1]], [[V2]]
; CHECK-NEXT: ret i32 [[SUM]]
;
%v1 = load i32, ptr %a
%v2 = load i32, ptr %b
%sum = add i32 %v1, %v2
ret i32 %sum
}
define i32 @test_device(ptr %a, ptr byval(i32) %b) {
; CHECK-LABEL: define i32 @test_device(
; CHECK-SAME: ptr [[A:%.*]], ptr byval(i32) [[B:%.*]]) {
; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[B]] to ptr addrspace(5)
; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[A]], align 4
; CHECK-NEXT: [[V2:%.*]] = load i32, ptr addrspace(5) [[TMP1]], align 4
; CHECK-NEXT: [[SUM:%.*]] = add i32 [[V1]], [[V2]]
; CHECK-NEXT: ret i32 [[SUM]]
;
%v1 = load i32, ptr %a
%v2 = load i32, ptr %b
%sum = add i32 %v1, %v2
ret i32 %sum
}