1 ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s 2 3 4 declare i8 @llvm.nvvm.ldu.global.i.i8.p1i8(i8 addrspace(1)* %ptr, i32 %align) 5 declare i32 @llvm.nvvm.ldu.global.i.i32.p1i32(i32 addrspace(1)* %ptr, i32 %align) 6 declare i8 @llvm.nvvm.ldg.global.i.i8.p1i8(i8 addrspace(1)* %ptr, i32 %align) 7 declare i32 @llvm.nvvm.ldg.global.i.i32.p1i32(i32 addrspace(1)* %ptr, i32 %align) 8 9 10 ; CHECK: func0 11 define i8 @func0(i8 addrspace(1)* %ptr) { 12 ; ldu.global.u8 13 %val = tail call i8 @llvm.nvvm.ldu.global.i.i8.p1i8(i8 addrspace(1)* %ptr, i32 4) 14 ret i8 %val 15 } 16 17 ; CHECK: func1 18 define i32 @func1(i32 addrspace(1)* %ptr) { 19 ; ldu.global.u32 20 %val = tail call i32 @llvm.nvvm.ldu.global.i.i32.p1i32(i32 addrspace(1)* %ptr, i32 4) 21 ret i32 %val 22 } 23 24 ; CHECK: func2 25 define i8 @func2(i8 addrspace(1)* %ptr) { 26 ; ld.global.nc.u8 27 %val = tail call i8 @llvm.nvvm.ldg.global.i.i8.p1i8(i8 addrspace(1)* %ptr, i32 4) 28 ret i8 %val 29 } 30 31 ; CHECK: func3 32 define i32 @func3(i32 addrspace(1)* %ptr) { 33 ; ld.global.nc.u32 34 %val = tail call i32 @llvm.nvvm.ldg.global.i.i32.p1i32(i32 addrspace(1)* %ptr, i32 4) 35 ret i32 %val 36 } 37