| ; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s |
| target triple = "dxil-unknown-shadermodel6.7-library" |
| |
| ; CHECK: [[GLOBAL:@.*]] = unnamed_addr addrspace(3) global [10 x i32] zeroinitializer, align 4 |
| @g = local_unnamed_addr addrspace(3) global [10 x i32] zeroinitializer, align 4 |
| |
| define i32 @fn() #0 { |
| ; CHECK-LABEL: define i32 @fn() |
| ; CHECK-NEXT: [[LOAD:%.*]] = load i32, i32 addrspace(3)* getelementptr inbounds ([10 x i32], [10 x i32] addrspace(3)* [[GLOBAL]], i32 0, i32 1), align 4 |
| ; CHECK-NEXT: ret i32 [[LOAD]] |
| ; |
| %gep = getelementptr [10 x i32], ptr addrspace(3) @g, i32 0, i32 1 |
| %ld = load i32, ptr addrspace(3) %gep, align 4 |
| ret i32 %ld |
| } |
| |
| define i32 @fn2() #0 { |
| ; CHECK-LABEL: define i32 @fn2() |
| ; CHECK-NEXT: [[LOAD:%.*]] = load i32, i32 addrspace(3)* getelementptr inbounds ([10 x i32], [10 x i32] addrspace(3)* [[GLOBAL]], i32 0, i32 2), align 4 |
| ; CHECK-NEXT: ret i32 [[LOAD]] |
| ; |
| %ld = load i32, ptr addrspace(3) getelementptr ([10 x i32], ptr addrspace(3) @g, i32 0, i32 2), align 4 |
| ret i32 %ld |
| } |
| |
| define i32 @fn3() #0 { |
| ; CHECK-LABEL: define i32 @fn3() |
| ; CHECK-NEXT: [[LOAD:%.*]] = load i32, i32 addrspace(3)* getelementptr inbounds ([10 x i32], [10 x i32] addrspace(3)* [[GLOBAL]], i32 0, i32 3), align 4 |
| ; CHECK-NEXT: ret i32 [[LOAD]] |
| ; |
| %ld = load i32, ptr addrspace(3) getelementptr (i8, ptr addrspace(3) @g, i32 12), align 4 |
| ret i32 %ld |
| } |
| |
| attributes #0 = { "hlsl.export" } |