@@ -16,7 +16,7 @@ define void @loadv4f32() {
16
16
; The temporary casts should all have been cleaned up
17
17
; CHECK-NOT: %dx.cast_handle
18
18
19
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
19
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR:]]
20
20
%data0 = call <4 x float > @llvm.dx.typedBufferLoad (
21
21
target ("dx.TypedBuffer" , <4 x float >, 0 , 0 , 0 ) %buffer , i32 0 )
22
22
@@ -33,7 +33,7 @@ define void @loadv4f32() {
33
33
call void @scalar_user (float %data0_0 )
34
34
call void @scalar_user (float %data0_2 )
35
35
36
- ; CHECK: [[DATA4:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 4, i32 undef)
36
+ ; CHECK: [[DATA4:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 4, i32 undef) #[[#ATTR]]
37
37
%data4 = call <4 x float > @llvm.dx.typedBufferLoad (
38
38
target ("dx.TypedBuffer" , <4 x float >, 0 , 0 , 0 ) %buffer , i32 4 )
39
39
@@ -47,7 +47,7 @@ define void @loadv4f32() {
47
47
; CHECK: insertelement <4 x float>
48
48
call void @vector_user (<4 x float > %data4 )
49
49
50
- ; CHECK: [[DATA12:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 12, i32 undef)
50
+ ; CHECK: [[DATA12:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 12, i32 undef) #[[#ATTR]]
51
51
%data12 = call <4 x float > @llvm.dx.typedBufferLoad (
52
52
target ("dx.TypedBuffer" , <4 x float >, 0 , 0 , 0 ) %buffer , i32 12 )
53
53
@@ -69,7 +69,7 @@ define void @index_dynamic(i32 %bufindex, i32 %elemindex) {
69
69
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0 (
70
70
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
71
71
72
- ; CHECK: [[LOAD:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 %bufindex, i32 undef)
72
+ ; CHECK: [[LOAD:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 %bufindex, i32 undef) #[[#ATTR]]
73
73
%load = call <4 x float > @llvm.dx.typedBufferLoad (
74
74
target ("dx.TypedBuffer" , <4 x float >, 0 , 0 , 0 ) %buffer , i32 %bufindex )
75
75
@@ -104,7 +104,7 @@ define void @loadf32() {
104
104
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_f32_0_0_0 (
105
105
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
106
106
107
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
107
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
108
108
%data0 = call float @llvm.dx.typedBufferLoad (
109
109
target ("dx.TypedBuffer" , float , 0 , 0 , 0 ) %buffer , i32 0 )
110
110
@@ -122,7 +122,7 @@ define void @loadv2f32() {
122
122
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v2f32_0_0_0 (
123
123
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
124
124
125
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
125
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
126
126
%data0 = call <2 x float > @llvm.dx.typedBufferLoad (
127
127
target ("dx.TypedBuffer" , <2 x float >, 0 , 0 , 0 ) %buffer , i32 0 )
128
128
@@ -136,12 +136,12 @@ define void @loadv4f32_checkbit() {
136
136
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0 (
137
137
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
138
138
139
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
139
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
140
140
%data0 = call {<4 x float >, i1 } @llvm.dx.typedBufferLoad.checkbit.f32 (
141
141
target ("dx.TypedBuffer" , <4 x float >, 0 , 0 , 0 ) %buffer , i32 0 )
142
142
143
143
; CHECK: [[STATUS:%.*]] = extractvalue %dx.types.ResRet.f32 [[DATA0]], 4
144
- ; CHECK: [[MAPPED:%.*]] = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 [[STATUS]]
144
+ ; CHECK: [[MAPPED:%.*]] = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 [[STATUS]]) #[[#ATTR]]
145
145
%check = extractvalue {<4 x float >, i1 } %data0 , 1
146
146
147
147
; CHECK: call void @check_user(i1 [[MAPPED]])
@@ -157,7 +157,7 @@ define void @loadv4i32() {
157
157
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4i32_0_0_0 (
158
158
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
159
159
160
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
160
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
161
161
%data0 = call <4 x i32 > @llvm.dx.typedBufferLoad (
162
162
target ("dx.TypedBuffer" , <4 x i32 >, 0 , 0 , 0 ) %buffer , i32 0 )
163
163
@@ -171,7 +171,7 @@ define void @loadv4f16() {
171
171
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f16_0_0_0 (
172
172
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
173
173
174
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f16 @dx.op.bufferLoad.f16(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
174
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.f16 @dx.op.bufferLoad.f16(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
175
175
%data0 = call <4 x half > @llvm.dx.typedBufferLoad (
176
176
target ("dx.TypedBuffer" , <4 x half >, 0 , 0 , 0 ) %buffer , i32 0 )
177
177
@@ -185,9 +185,11 @@ define void @loadv4i16() {
185
185
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4i16_0_0_0 (
186
186
i32 0 , i32 0 , i32 1 , i32 0 , i1 false )
187
187
188
- ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.i16 @dx.op.bufferLoad.i16(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef)
188
+ ; CHECK: [[DATA0:%.*]] = call %dx.types.ResRet.i16 @dx.op.bufferLoad.i16(i32 68, %dx.types.Handle [[HANDLE]], i32 0, i32 undef) #[[#ATTR]]
189
189
%data0 = call <4 x i16 > @llvm.dx.typedBufferLoad (
190
190
target ("dx.TypedBuffer" , <4 x i16 >, 0 , 0 , 0 ) %buffer , i32 0 )
191
191
192
192
ret void
193
193
}
194
+
195
+ ; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(read) {{.*}}}
0 commit comments