5
5
define void @test_typedbuffer () {
6
6
; ByteAddressBuffer Buf : register(t8, space1)
7
7
%srv0 = call target ("dx.RawBuffer" , void , 0 , 0 )
8
- @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_i8_0_0t (
9
- i32 1 , i32 8 , i32 1 , i32 0 , i1 false )
8
+ @llvm.dx.resource.handlefrombinding (i32 1 , i32 8 , i32 1 , i32 0 , i1 false )
10
9
; CHECK: Resource [[SRV0:[0-9]+]]:
11
10
; CHECK: Binding:
12
11
; CHECK: Record ID: 0
@@ -19,8 +18,7 @@ define void @test_typedbuffer() {
19
18
; struct S { float4 a; uint4 b; };
20
19
; StructuredBuffer<S> Buf : register(t2, space4)
21
20
%srv1 = call target ("dx.RawBuffer" , {<4 x float >, <4 x i32 >}, 0 , 0 )
22
- @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t (
23
- i32 4 , i32 2 , i32 1 , i32 0 , i1 false )
21
+ @llvm.dx.resource.handlefrombinding (i32 4 , i32 2 , i32 1 , i32 0 , i1 false )
24
22
; CHECK: Resource [[SRV1:[0-9]+]]:
25
23
; CHECK: Binding:
26
24
; CHECK: Record ID: 1
@@ -34,8 +32,7 @@ define void @test_typedbuffer() {
34
32
35
33
; Buffer<uint4> Buf[24] : register(t3, space5)
36
34
%srv2 = call target ("dx.TypedBuffer" , <4 x i32 >, 0 , 0 , 0 )
37
- @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i32_0_0t (
38
- i32 5 , i32 3 , i32 24 , i32 0 , i1 false )
35
+ @llvm.dx.resource.handlefrombinding (i32 5 , i32 3 , i32 24 , i32 0 , i1 false )
39
36
; CHECK: Resource [[SRV2:[0-9]+]]:
40
37
; CHECK: Binding:
41
38
; CHECK: Record ID: 2
@@ -49,8 +46,7 @@ define void @test_typedbuffer() {
49
46
50
47
; RWBuffer<int> Buf : register(u7, space2)
51
48
%uav0 = call target ("dx.TypedBuffer" , i32 , 1 , 0 , 1 )
52
- @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i32_1_0t (
53
- i32 2 , i32 7 , i32 1 , i32 0 , i1 false )
49
+ @llvm.dx.resource.handlefrombinding (i32 2 , i32 7 , i32 1 , i32 0 , i1 false )
54
50
; CHECK: Resource [[UAV0:[0-9]+]]:
55
51
; CHECK: Binding:
56
52
; CHECK: Record ID: 0
@@ -67,16 +63,16 @@ define void @test_typedbuffer() {
67
63
68
64
; RWBuffer<float4> Buf : register(u5, space3)
69
65
%uav1 = call target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 )
70
- @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0 (
71
- i32 3 , i32 5 , i32 1 , i32 0 , i1 false )
66
+ @llvm.dx.resource.handlefrombinding ( i32 3 , i32 5 , i32 1 , i32 0 , i1 false )
67
+ call i32 @llvm.dx.resource.updatecounter ( target ( "dx.TypedBuffer" , < 4 x float >, 1 , 0 , 0 ) %uav1 , i8 - 1 )
72
68
; CHECK: Resource [[UAV1:[0-9]+]]:
73
69
; CHECK: Binding:
74
70
; CHECK: Record ID: 1
75
71
; CHECK: Space: 3
76
72
; CHECK: Lower Bound: 5
77
73
; CHECK: Size: 1
78
74
; CHECK: Globally Coherent: 0
79
- ; CHECK: Counter Direction: Unknown
75
+ ; CHECK: Counter Direction: Decrement
80
76
; CHECK: Class: UAV
81
77
; CHECK: Kind: TypedBuffer
82
78
; CHECK: IsROV: 0
@@ -86,28 +82,46 @@ define void @test_typedbuffer() {
86
82
; RWBuffer<float4> BufferArray[10] : register(u0, space4)
87
83
; RWBuffer<float4> Buf = BufferArray[0]
88
84
%uav2_1 = call target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 )
89
- @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0 (
90
- i32 4 , i32 0 , i32 10 , i32 0 , i1 false )
85
+ @llvm.dx.resource.handlefrombinding (i32 4 , i32 0 , i32 10 , i32 0 , i1 false )
91
86
; RWBuffer<float4> Buf = BufferArray[5]
92
87
%uav2_2 = call target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 )
93
- @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0 (
94
- i32 4 , i32 0 , i32 10 , i32 5 , i1 false )
88
+ @llvm.dx.resource.handlefrombinding ( i32 4 , i32 0 , i32 10 , i32 5 , i1 false )
89
+ call i32 @llvm.dx.resource.updatecounter ( target ( "dx.TypedBuffer" , < 4 x float >, 1 , 0 , 0 ) %uav2_2 , i8 1 )
95
90
; CHECK: Resource [[UAV2:[0-9]+]]:
96
91
; CHECK: Binding:
97
92
; CHECK: Record ID: 2
98
93
; CHECK: Space: 4
99
94
; CHECK: Lower Bound: 0
100
95
; CHECK: Size: 10
101
96
; CHECK: Globally Coherent: 0
102
- ; CHECK: Counter Direction: Unknown
97
+ ; CHECK: Counter Direction: Increment
98
+ ; CHECK: Class: UAV
99
+ ; CHECK: Kind: TypedBuffer
100
+ ; CHECK: IsROV: 0
101
+ ; CHECK: Element Type: f32
102
+ ; CHECK: Element Count: 4
103
+
104
+ ; RWBuffer<float4> Buf : register(u0, space5)
105
+ %uav3 = call target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 )
106
+ @llvm.dx.resource.handlefrombinding (i32 5 , i32 0 , i32 1 , i32 0 , i1 false )
107
+ call i32 @llvm.dx.resource.updatecounter (target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 ) %uav3 , i8 -1 )
108
+ call i32 @llvm.dx.resource.updatecounter (target ("dx.TypedBuffer" , <4 x float >, 1 , 0 , 0 ) %uav3 , i8 1 )
109
+ ; CHECK: Resource [[UAV3:[0-9]+]]:
110
+ ; CHECK: Binding:
111
+ ; CHECK: Record ID: 3
112
+ ; CHECK: Space: 5
113
+ ; CHECK: Lower Bound: 0
114
+ ; CHECK: Size: 1
115
+ ; CHECK: Globally Coherent: 0
116
+ ; CHECK: Counter Direction: Invalid
103
117
; CHECK: Class: UAV
104
118
; CHECK: Kind: TypedBuffer
105
119
; CHECK: IsROV: 0
106
120
; CHECK: Element Type: f32
107
121
; CHECK: Element Count: 4
108
122
109
123
%cb0 = call target ("dx.CBuffer" , {float })
110
- @llvm.dx.resource.handlefrombinding (i32 1 , i32 0 , i32 1 , i32 0 , i1 false )
124
+ @llvm.dx.resource.handlefrombinding (i32 1 , i32 0 , i32 1 , i32 0 , i1 false )
111
125
; CHECK: Resource [[CB0:[0-9]+]]:
112
126
; CHECK: Binding:
113
127
; CHECK: Record ID: 0
@@ -119,7 +133,7 @@ define void @test_typedbuffer() {
119
133
; CHECK: CBuffer size: 4
120
134
121
135
%cb1 = call target ("dx.CBuffer" , target ("dx.Layout" , {float }, 4 , 0 ))
122
- @llvm.dx.resource.handlefrombinding (i32 1 , i32 8 , i32 1 , i32 0 , i1 false )
136
+ @llvm.dx.resource.handlefrombinding (i32 1 , i32 8 , i32 1 , i32 0 , i1 false )
123
137
; CHECK: Resource [[CB1:[0-9]+]]:
124
138
; CHECK: Binding:
125
139
; CHECK: Record ID: 1
0 commit comments