62 lines · plain
1; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s2target triple = "dxil-unknown-shadermodel6.7-library"3 4define i64 @test(ptr %p) #0 {5 store i32 0, ptr %p6 %v = load i64, ptr %p7 ret i64 %v8}9 10; CHECK: define i64 @test(i8* %p) {11; CHECK-NEXT: %1 = bitcast i8* %p to i32*12; CHECK-NEXT: store i32 0, i32* %1, align 413; CHECK-NEXT: %2 = bitcast i8* %p to i64*14; CHECK-NEXT: %3 = load i64, i64* %2, align 815 16define i64 @test2(ptr %p) #0 {17 store i64 0, ptr %p18 %v = load i64, ptr %p19 ret i64 %v20}21 22; CHECK: define i64 @test2(i64* %p) {23; CHECK-NEXT: store i64 0, i64* %p, align 824; CHECK-NEXT: %v = load i64, i64* %p, align 825 26define i64 @test3(ptr addrspace(1) %p) #0 {27 store i32 0, ptr addrspace(1) %p28 %v = load i64, ptr addrspace(1) %p29 ret i64 %v30}31 32; CHECK: define i64 @test3(i8 addrspace(1)* %p) {33; CHECK-NEXT: %1 = bitcast i8 addrspace(1)* %p to i32 addrspace(1)*34; CHECK-NEXT: store i32 0, i32 addrspace(1)* %1, align 435; CHECK-NEXT: %2 = bitcast i8 addrspace(1)* %p to i64 addrspace(1)*36; CHECK-NEXT: %3 = load i64, i64 addrspace(1)* %2, align 837 38define i64 @test4(ptr addrspace(1) %p) #0 {39 store i64 0, ptr addrspace(1) %p40 %v = load i64, ptr addrspace(1) %p41 ret i64 %v42}43 44; CHECK: define i64 @test4(i64 addrspace(1)* %p) {45; CHECK-NEXT: store i64 0, i64 addrspace(1)* %p, align 846; CHECK-NEXT: %v = load i64, i64 addrspace(1)* %p, align 847 48 49define i64 @test5(ptr %p) #0 {50 %casted = addrspacecast ptr %p to ptr addrspace(1)51 store i64 0, ptr addrspace(1) %casted52 %v = load i64, ptr addrspace(1) %casted53 ret i64 %v54}55 56; CHECK: define i64 @test5(i8* %p) {57; CHECK-NEXT: %casted = addrspacecast i8* %p to i64 addrspace(1)*58; CHECK-NEXT: store i64 0, i64 addrspace(1)* %casted, align 859; CHECK-NEXT: %v = load i64, i64 addrspace(1)* %casted, align 860 61attributes #0 = { "hlsl.export" }62