36 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S -passes=infer-address-spaces %s | FileCheck %s3 4target triple = "nvptx64-nvidia-cuda"5 6 7define ptx_kernel i32 @test_kernel(ptr %a, ptr byval(i32) %b) {8; CHECK-LABEL: define ptx_kernel i32 @test_kernel(9; CHECK-SAME: ptr [[A:%.*]], ptr byval(i32) [[B:%.*]]) {10; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[A]] to ptr addrspace(1)11; CHECK-NEXT: [[V1:%.*]] = load i32, ptr addrspace(1) [[TMP1]], align 412; CHECK-NEXT: [[V2:%.*]] = load i32, ptr [[B]], align 413; CHECK-NEXT: [[SUM:%.*]] = add i32 [[V1]], [[V2]]14; CHECK-NEXT: ret i32 [[SUM]]15;16 %v1 = load i32, ptr %a17 %v2 = load i32, ptr %b18 %sum = add i32 %v1, %v219 ret i32 %sum20}21 22define i32 @test_device(ptr %a, ptr byval(i32) %b) {23; CHECK-LABEL: define i32 @test_device(24; CHECK-SAME: ptr [[A:%.*]], ptr byval(i32) [[B:%.*]]) {25; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[B]] to ptr addrspace(5)26; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[A]], align 427; CHECK-NEXT: [[V2:%.*]] = load i32, ptr addrspace(5) [[TMP1]], align 428; CHECK-NEXT: [[SUM:%.*]] = add i32 [[V1]], [[V2]]29; CHECK-NEXT: ret i32 [[SUM]]30;31 %v1 = load i32, ptr %a32 %v2 = load i32, ptr %b33 %sum = add i32 %v1, %v234 ret i32 %sum35}36