Skip to content

Commit 9a27517

Browse files
committed
update testcases to check attributes
- testcases are update to check updated attribute types - there are some CHECK-NOT tests to ensure that previously set attributes no longer emit an attribute
1 parent 084d969 commit 9a27517

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+319
-227
lines changed

llvm/test/CodeGen/DirectX/BufferLoad.ll

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ define void @loadv4f32() {
1616
; The temporary casts should all have been cleaned up
1717
; CHECK-NOT: %dx.cast_handle
1818

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:]]
2020
%data0 = call <4 x float> @llvm.dx.typedBufferLoad(
2121
target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i32 0)
2222

@@ -33,7 +33,7 @@ define void @loadv4f32() {
3333
call void @scalar_user(float %data0_0)
3434
call void @scalar_user(float %data0_2)
3535

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]]
3737
%data4 = call <4 x float> @llvm.dx.typedBufferLoad(
3838
target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i32 4)
3939

@@ -47,7 +47,7 @@ define void @loadv4f32() {
4747
; CHECK: insertelement <4 x float>
4848
call void @vector_user(<4 x float> %data4)
4949

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]]
5151
%data12 = call <4 x float> @llvm.dx.typedBufferLoad(
5252
target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i32 12)
5353

@@ -69,7 +69,7 @@ define void @index_dynamic(i32 %bufindex, i32 %elemindex) {
6969
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0(
7070
i32 0, i32 0, i32 1, i32 0, i1 false)
7171

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]]
7373
%load = call <4 x float> @llvm.dx.typedBufferLoad(
7474
target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i32 %bufindex)
7575

@@ -104,7 +104,7 @@ define void @loadf32() {
104104
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_f32_0_0_0(
105105
i32 0, i32 0, i32 1, i32 0, i1 false)
106106

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]]
108108
%data0 = call float @llvm.dx.typedBufferLoad(
109109
target("dx.TypedBuffer", float, 0, 0, 0) %buffer, i32 0)
110110

@@ -122,7 +122,7 @@ define void @loadv2f32() {
122122
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v2f32_0_0_0(
123123
i32 0, i32 0, i32 1, i32 0, i1 false)
124124

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]]
126126
%data0 = call <2 x float> @llvm.dx.typedBufferLoad(
127127
target("dx.TypedBuffer", <2 x float>, 0, 0, 0) %buffer, i32 0)
128128

@@ -136,7 +136,7 @@ define void @loadv4f32_checkbit() {
136136
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0(
137137
i32 0, i32 0, i32 1, i32 0, i1 false)
138138

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]]
140140
%data0 = call {<4 x float>, i1} @llvm.dx.typedBufferLoad.checkbit.f32(
141141
target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i32 0)
142142

@@ -157,7 +157,7 @@ define void @loadv4i32() {
157157
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4i32_0_0_0(
158158
i32 0, i32 0, i32 1, i32 0, i1 false)
159159

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]]
161161
%data0 = call <4 x i32> @llvm.dx.typedBufferLoad(
162162
target("dx.TypedBuffer", <4 x i32>, 0, 0, 0) %buffer, i32 0)
163163

@@ -171,7 +171,7 @@ define void @loadv4f16() {
171171
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f16_0_0_0(
172172
i32 0, i32 0, i32 1, i32 0, i1 false)
173173

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]]
175175
%data0 = call <4 x half> @llvm.dx.typedBufferLoad(
176176
target("dx.TypedBuffer", <4 x half>, 0, 0, 0) %buffer, i32 0)
177177

@@ -185,9 +185,11 @@ define void @loadv4i16() {
185185
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4i16_0_0_0(
186186
i32 0, i32 0, i32 1, i32 0, i1 false)
187187

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]]
189189
%data0 = call <4 x i16> @llvm.dx.typedBufferLoad(
190190
target("dx.TypedBuffer", <4 x i16>, 0, 0, 0) %buffer, i32 0)
191191

192192
ret void
193193
}
194+
195+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(read) {{.*}}}

llvm/test/CodeGen/DirectX/CreateHandle.ll

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,47 +19,49 @@ define void @test_buffers() {
1919
%typed0 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0)
2020
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_1_0_0(
2121
i32 3, i32 5, i32 1, i32 4, i1 false)
22-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 1, i32 4, i1 false)
22+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 1, i32 4, i1 false) #[[#ATTR:]]
2323
; CHECK-NOT: @llvm.dx.cast.handle
2424

2525
; RWBuffer<int> Buf : register(u7, space2)
2626
%typed1 = call target("dx.TypedBuffer", i32, 1, 0, 1)
2727
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_1_0_1t(
2828
i32 2, i32 7, i32 1, i32 6, i1 false)
29-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 6, i1 false)
29+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 6, i1 false) #[[#ATTR]]
3030

3131
; Buffer<uint4> Buf[24] : register(t3, space5)
3232
; Buffer<uint4> typed2 = Buf[4]
3333
; Note that the index below is 3 + 4 = 7
3434
%typed2 = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0)
3535
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_0_0_0t(
3636
i32 5, i32 3, i32 24, i32 7, i1 false)
37-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 3, i32 7, i1 false)
37+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 3, i32 7, i1 false) #[[#ATTR]]
3838

3939
; struct S { float4 a; uint4 b; };
4040
; StructuredBuffer<S> Buf : register(t2, space4)
4141
%struct0 = call target("dx.RawBuffer", {<4 x float>, <4 x i32>}, 0, 0)
4242
@llvm.dx.handle.fromBinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t(
4343
i32 4, i32 2, i32 1, i32 10, i1 true)
44-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 2, i32 10, i1 true)
44+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 2, i32 10, i1 true) #[[#ATTR]]
4545

4646
; ByteAddressBuffer Buf : register(t8, space1)
4747
%byteaddr0 = call target("dx.RawBuffer", i8, 0, 0)
4848
@llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t(
4949
i32 1, i32 8, i32 1, i32 12, i1 false)
50-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 12, i1 false)
50+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 12, i1 false) #[[#ATTR]]
5151

5252
; Buffer<float4> Buf[] : register(t0)
5353
; Buffer<float4> typed3 = Buf[ix]
5454
%typed3_ix = call i32 @some_val()
5555
%typed3 = call target("dx.TypedBuffer", <4 x float>, 0, 0, 0)
5656
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0t(
5757
i32 0, i32 0, i32 -1, i32 %typed3_ix, i1 false)
58-
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %typed3_ix, i1 false)
58+
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %typed3_ix, i1 false) #[[#ATTR]]
5959

6060
ret void
6161
}
6262

63+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(read) {{.*}}}
64+
6365
; Just check that we have the right types and number of metadata nodes, the
6466
; contents of the metadata are tested elsewhere.
6567
;

llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,52 +19,54 @@ define void @test_bindings() {
1919
%typed0 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0)
2020
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_1_0_0(
2121
i32 3, i32 5, i32 1, i32 4, i1 false)
22-
; CHECK: [[BUF0:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 5, i32 5, i32 3, i8 1 }, i32 4, i1 false)
23-
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF0]], %dx.types.ResourceProperties { i32 4106, i32 1033 })
22+
; CHECK: [[BUF0:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 5, i32 5, i32 3, i8 1 }, i32 4, i1 false) #[[#ATTR:]]
23+
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF0]], %dx.types.ResourceProperties { i32 4106, i32 1033 }) #[[#ATTR]]
2424

2525
; RWBuffer<int> Buf : register(u7, space2)
2626
%typed1 = call target("dx.TypedBuffer", i32, 1, 0, 1)
2727
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_1_0_0t(
2828
i32 2, i32 7, i32 1, i32 6, i1 false)
29-
; CHECK: [[BUF1:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 7, i32 7, i32 2, i8 1 }, i32 6, i1 false)
30-
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF1]], %dx.types.ResourceProperties { i32 4106, i32 260 })
29+
; CHECK: [[BUF1:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 7, i32 7, i32 2, i8 1 }, i32 6, i1 false) #[[#ATTR]]
30+
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF1]], %dx.types.ResourceProperties { i32 4106, i32 260 }) #[[#ATTR]]
3131

3232
; Buffer<uint4> Buf[24] : register(t3, space5)
3333
; Buffer<uint4> typed2 = Buf[4]
3434
; Note that the index below is 3 + 4 = 7
3535
%typed2 = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0)
3636
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_0_0_0t(
3737
i32 5, i32 3, i32 24, i32 7, i1 false)
38-
; CHECK: [[BUF2:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 3, i32 26, i32 5, i8 0 }, i32 7, i1 false)
39-
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF2]], %dx.types.ResourceProperties { i32 10, i32 1029 })
38+
; CHECK: [[BUF2:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 3, i32 26, i32 5, i8 0 }, i32 7, i1 false) #[[#ATTR]]
39+
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF2]], %dx.types.ResourceProperties { i32 10, i32 1029 }) #[[#ATTR]]
4040

4141
; struct S { float4 a; uint4 b; };
4242
; StructuredBuffer<S> Buf : register(t2, space4)
4343
%struct0 = call target("dx.RawBuffer", {<4 x float>, <4 x i32>}, 0, 0)
4444
@llvm.dx.handle.fromBinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t(
4545
i32 4, i32 2, i32 1, i32 10, i1 true)
46-
; CHECK: [[BUF3:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 2, i32 2, i32 4, i8 0 }, i32 10, i1 true)
47-
; CHECK: = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF3]], %dx.types.ResourceProperties { i32 1036, i32 32 })
46+
; CHECK: [[BUF3:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 2, i32 2, i32 4, i8 0 }, i32 10, i1 true) #[[#ATTR]]
47+
; CHECK: = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF3]], %dx.types.ResourceProperties { i32 1036, i32 32 }) #[[#ATTR]]
4848

4949
; ByteAddressBuffer Buf : register(t8, space1)
5050
%byteaddr0 = call target("dx.RawBuffer", i8, 0, 0)
5151
@llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t(
5252
i32 1, i32 8, i32 1, i32 12, i1 false)
53-
; CHECK: [[BUF4:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 8, i32 8, i32 1, i8 0 }, i32 12, i1 false)
54-
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF4]], %dx.types.ResourceProperties { i32 11, i32 0 })
53+
; CHECK: [[BUF4:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 8, i32 8, i32 1, i8 0 }, i32 12, i1 false) #[[#ATTR]]
54+
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF4]], %dx.types.ResourceProperties { i32 11, i32 0 }) #[[#ATTR]]
5555

5656
; Buffer<float4> Buf[] : register(t0)
5757
; Buffer<float4> typed3 = Buf[ix]
5858
%typed3_ix = call i32 @some_val()
5959
%typed3 = call target("dx.TypedBuffer", <4 x float>, 0, 0, 0)
6060
@llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0t(
6161
i32 0, i32 0, i32 -1, i32 %typed3_ix, i1 false)
62-
; CHECK: [[BUF5:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 0, i32 -1, i32 0, i8 0 }, i32 %typed3_ix, i1 false)
63-
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF5]], %dx.types.ResourceProperties { i32 10, i32 1033 })
62+
; CHECK: [[BUF5:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 0, i32 -1, i32 0, i8 0 }, i32 %typed3_ix, i1 false) #[[#ATTR]]
63+
; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF5]], %dx.types.ResourceProperties { i32 10, i32 1033 }) #[[#ATTR]]
6464

6565
ret void
6666
}
6767

68+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
69+
6870
; Just check that we have the right types and number of metadata nodes, the
6971
; contents of the metadata are tested elsewhere.
7072
;

llvm/test/CodeGen/DirectX/WaveActiveCountBits.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ entry:
77
ret void
88
}
99

10+
; CHECK-NOT: attributes {{.*}} memory(none)
11+
1012
declare i32 @llvm.dx.wave.active.countbits(i1)

llvm/test/CodeGen/DirectX/WaveGetLaneIndex.ll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
define void @main() {
44
entry:
5-
; CHECK: call i32 @dx.op.waveGetLaneIndex(i32 111)
5+
; CHECK: call i32 @dx.op.waveGetLaneIndex(i32 111) #[[#ATTR:]]
66
%0 = call i32 @llvm.dx.wave.getlaneindex()
77
ret void
88
}
99

10+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(read) {{.*}}}
11+
1012
declare i32 @llvm.dx.wave.getlaneindex()

llvm/test/CodeGen/DirectX/WaveReadLaneAt.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ entry:
5151
ret i64 %ret
5252
}
5353

54+
; CHECK-NOT: attributes {{.*}} memory(none)
55+
5456
declare half @llvm.dx.wave.readlane.f16(half, i32)
5557
declare float @llvm.dx.wave.readlane.f32(float, i32)
5658
declare double @llvm.dx.wave.readlane.f64(double, i32)

llvm/test/CodeGen/DirectX/abs.ll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ define noundef i16 @abs_i16(i16 noundef %a) {
88
entry:
99
; CHECK: sub i16 0, %a
1010
; EXPCHECK: call i16 @llvm.smax.i16(i16 %a, i16 %{{.*}})
11-
; DOPCHECK: call i16 @dx.op.binary.i16(i32 37, i16 %a, i16 %{{.*}})
11+
; DOPCHECK: call i16 @dx.op.binary.i16(i32 37, i16 %a, i16 %{{.*}}) #[[#ATTR:]]
1212
%elt.abs = call i16 @llvm.abs.i16(i16 %a, i1 false)
1313
ret i16 %elt.abs
1414
}
@@ -18,7 +18,7 @@ define noundef i32 @abs_i32(i32 noundef %a) {
1818
entry:
1919
; CHECK: sub i32 0, %a
2020
; EXPCHECK: call i32 @llvm.smax.i32(i32 %a, i32 %{{.*}})
21-
; DOPCHECK: call i32 @dx.op.binary.i32(i32 37, i32 %a, i32 %{{.*}})
21+
; DOPCHECK: call i32 @dx.op.binary.i32(i32 37, i32 %a, i32 %{{.*}}) #[[#ATTR]]
2222
%elt.abs = call i32 @llvm.abs.i32(i32 %a, i1 false)
2323
ret i32 %elt.abs
2424
}
@@ -28,11 +28,13 @@ define noundef i64 @abs_i64(i64 noundef %a) {
2828
entry:
2929
; CHECK: sub i64 0, %a
3030
; EXPCHECK: call i64 @llvm.smax.i64(i64 %a, i64 %{{.*}})
31-
; DOPCHECK: call i64 @dx.op.binary.i64(i32 37, i64 %a, i64 %{{.*}})
31+
; DOPCHECK: call i64 @dx.op.binary.i64(i32 37, i64 %a, i64 %{{.*}}) #[[#ATTR]]
3232
%elt.abs = call i64 @llvm.abs.i64(i64 %a, i1 false)
3333
ret i64 %elt.abs
3434
}
3535

36+
; DOPCHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
37+
3638
declare i16 @llvm.abs.i16(i16, i1 immarg)
3739
declare i32 @llvm.abs.i32(i32, i1 immarg)
3840
declare i64 @llvm.abs.i64(i64, i1 immarg)

llvm/test/CodeGen/DirectX/acos.ll

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@
44

55
define noundef float @acos_float(float noundef %a) {
66
entry:
7-
; CHECK:call float @dx.op.unary.f32(i32 15, float %{{.*}})
7+
; CHECK:call float @dx.op.unary.f32(i32 15, float %{{.*}}) #[[#ATTR:]]
88
%elt.acos = call float @llvm.acos.f32(float %a)
99
ret float %elt.acos
1010
}
1111

1212
define noundef half @acos_half(half noundef %a) {
1313
entry:
14-
; CHECK:call half @dx.op.unary.f16(i32 15, half %{{.*}})
14+
; CHECK:call half @dx.op.unary.f16(i32 15, half %{{.*}}) #[[#ATTR]]
1515
%elt.acos = call half @llvm.acos.f16(half %a)
1616
ret half %elt.acos
1717
}
1818

1919
define noundef <4 x float> @acos_float4(<4 x float> noundef %a) {
2020
entry:
2121
; CHECK: [[ee0:%.*]] = extractelement <4 x float> %a, i64 0
22-
; CHECK: [[ie0:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee0]])
22+
; CHECK: [[ie0:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee0]]) #[[#ATTR]]
2323
; CHECK: [[ee1:%.*]] = extractelement <4 x float> %a, i64 1
24-
; CHECK: [[ie1:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee1]])
24+
; CHECK: [[ie1:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee1]]) #[[#ATTR]]
2525
; CHECK: [[ee2:%.*]] = extractelement <4 x float> %a, i64 2
26-
; CHECK: [[ie2:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee2]])
26+
; CHECK: [[ie2:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee2]]) #[[#ATTR]]
2727
; CHECK: [[ee3:%.*]] = extractelement <4 x float> %a, i64 3
28-
; CHECK: [[ie3:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee3]])
28+
; CHECK: [[ie3:%.*]] = call float @dx.op.unary.f32(i32 15, float [[ee3]]) #[[#ATTR]]
2929
; CHECK: insertelement <4 x float> poison, float [[ie0]], i64 0
3030
; CHECK: insertelement <4 x float> %{{.*}}, float [[ie1]], i64 1
3131
; CHECK: insertelement <4 x float> %{{.*}}, float [[ie2]], i64 2
@@ -34,6 +34,8 @@ entry:
3434
ret <4 x float> %2
3535
}
3636

37+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
38+
3739
declare half @llvm.acos.f16(half)
3840
declare float @llvm.acos.f32(float)
3941
declare <4 x float> @llvm.acos.v4f32(<4 x float>)

llvm/test/CodeGen/DirectX/asin.ll

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@
44

55
define noundef float @asin_float(float noundef %a) {
66
entry:
7-
; CHECK:call float @dx.op.unary.f32(i32 16, float %{{.*}})
7+
; CHECK:call float @dx.op.unary.f32(i32 16, float %{{.*}}) #[[#ATTR:]]
88
%elt.asin = call float @llvm.asin.f32(float %a)
99
ret float %elt.asin
1010
}
1111

1212
define noundef half @asin_half(half noundef %a) {
1313
entry:
14-
; CHECK:call half @dx.op.unary.f16(i32 16, half %{{.*}})
14+
; CHECK:call half @dx.op.unary.f16(i32 16, half %{{.*}}) #[[#ATTR]]
1515
%elt.asin = call half @llvm.asin.f16(half %a)
1616
ret half %elt.asin
1717
}
1818

1919
define noundef <4 x float> @asin_float4(<4 x float> noundef %a) {
2020
entry:
2121
; CHECK: [[ee0:%.*]] = extractelement <4 x float> %a, i64 0
22-
; CHECK: [[ie0:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee0]])
22+
; CHECK: [[ie0:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee0]]) #[[#ATTR]]
2323
; CHECK: [[ee1:%.*]] = extractelement <4 x float> %a, i64 1
24-
; CHECK: [[ie1:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee1]])
24+
; CHECK: [[ie1:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee1]]) #[[#ATTR]]
2525
; CHECK: [[ee2:%.*]] = extractelement <4 x float> %a, i64 2
26-
; CHECK: [[ie2:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee2]])
26+
; CHECK: [[ie2:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee2]]) #[[#ATTR]]
2727
; CHECK: [[ee3:%.*]] = extractelement <4 x float> %a, i64 3
28-
; CHECK: [[ie3:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee3]])
28+
; CHECK: [[ie3:%.*]] = call float @dx.op.unary.f32(i32 16, float [[ee3]]) #[[#ATTR]]
2929
; CHECK: insertelement <4 x float> poison, float [[ie0]], i64 0
3030
; CHECK: insertelement <4 x float> %{{.*}}, float [[ie1]], i64 1
3131
; CHECK: insertelement <4 x float> %{{.*}}, float [[ie2]], i64 2
@@ -34,6 +34,8 @@ entry:
3434
ret <4 x float> %2
3535
}
3636

37+
; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
38+
3739
declare half @llvm.asin.f16(half)
3840
declare float @llvm.asin.f32(float)
3941
declare <4 x float> @llvm.asin.v4f32(<4 x float>)

0 commit comments

Comments
 (0)