brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 1137a11 Raw
31 lines · plain
1; RUN: opt -S -dxil-resource-implicit-binding %s | FileCheck %s2 3target triple = "dxil-pc-shadermodel6.6-compute"4 5define void @test_simple_binding() {6 7; StructuredBuffer<float> A : register(t1);8  %bufA = call target("dx.RawBuffer", float, 0, 0)9      @llvm.dx.resource.handlefrombinding(i32 0, i32 1, i32 1, i32 0, ptr null)10; no change to llvm.dx.resource.handlefrombinding11; CHECK: %bufA = call target("dx.RawBuffer", float, 0, 0) 12; CHECK-SAME: @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_0_0t(i32 0, i32 1, i32 1, i32 0, ptr null)13 14; StructuredBuffer<float> B; // gets register(t0, space0)15  %bufB = call target("dx.RawBuffer", float, 0, 0)16      @llvm.dx.resource.handlefromimplicitbinding(i32 5, i32 0, i32 1, i32 0, ptr null)17; CHECK: %{{.*}} = call target("dx.RawBuffer", float, 0, 0)18; CHECK-SAME: @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_0_0t(i32 0, i32 0, i32 1, i32 0, ptr null)19 20; StructuredBuffer<float> C; // gets register(t2, space0)21  %bufC = call target("dx.RawBuffer", float, 0, 0)22      @llvm.dx.resource.handlefromimplicitbinding(i32 6, i32 0, i32 1, i32 0, ptr null)23; CHECK: %{{.*}} = call target("dx.RawBuffer", float, 0, 0)24; CHECK-SAME: @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_0_0t(i32 0, i32 2, i32 1, i32 0, ptr null)25 26; CHECK-NOT: @llvm.dx.resource.handlefromimplicitbinding27 28  ret void29}30 31