3
3
4
4
target triple = "dxil-pc-shadermodel6.2-compute"
5
5
6
- define { i64 , i1 } @loadi64 () {
7
- ; CHECK-LABEL: define { i64, i1 } @loadi64() {
6
+ define void @loadi64 () {
7
+ ; CHECK-LABEL: define void @loadi64() {
8
8
; CHECK-NEXT: [[BUFFER:%.*]] = tail call target("dx.TypedBuffer", i64, 1, 0, 0) @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i64_1_0_0t(i32 0, i32 0, i32 1, i32 0, i1 false, ptr null)
9
9
; CHECK-NEXT: [[TMP1:%.*]] = call { <2 x i32>, i1 } @llvm.dx.resource.load.typedbuffer.v2i32.tdx.TypedBuffer_i64_1_0_0t(target("dx.TypedBuffer", i64, 1, 0, 0) [[BUFFER]], i32 0)
10
10
; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { <2 x i32>, i1 } [[TMP1]], 0
@@ -14,19 +14,15 @@ define { i64, i1 } @loadi64() {
14
14
; CHECK-NEXT: [[TMP6:%.*]] = zext i32 [[TMP4]] to i64
15
15
; CHECK-NEXT: [[TMP7:%.*]] = shl i64 [[TMP6]], 32
16
16
; CHECK-NEXT: [[TMP8:%.*]] = or i64 [[TMP5]], [[TMP7]]
17
- ; CHECK-NEXT: [[TMP9:%.*]] = insertvalue { i64, i1 } poison, i64 [[TMP8]], 0
18
- ; CHECK-NEXT: [[TMP10:%.*]] = extractvalue { <2 x i32>, i1 } [[TMP1]], 1
19
- ; CHECK-NEXT: [[TMP11:%.*]] = insertvalue { i64, i1 } [[TMP9]], i1 [[TMP10]], 1
20
- ; CHECK-NEXT: ret { i64, i1 } [[TMP11]]
17
+ ; CHECK-NEXT: ret void
21
18
;
22
19
%buffer = tail call target ("dx.TypedBuffer" , i64 , 1 , 0 , 0 ) @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i64_1_0_0t (i32 0 , i32 0 , i32 1 , i32 0 , i1 false , ptr null )
23
- %result = call { i64 , i1 } @llvm.dx.resource.load.typedbuffer.tdx.TypedBuffer_i64_1_0_0t (
24
- target ("dx.TypedBuffer" , i64 , 1 , 0 , 0 ) %buffer , i32 0 )
25
- ret { i64 , i1 } %result
20
+ %result = call { i64 , i1 } @llvm.dx.resource.load.typedbuffer.tdx.TypedBuffer_i64_1_0_0t (target ("dx.TypedBuffer" , i64 , 1 , 0 , 0 ) %buffer , i32 0 )
21
+ ret void
26
22
}
27
23
28
- define { < 2 x i64 >, i1 } @loadv2i64 () {
29
- ; CHECK-LABEL: define { <2 x i64>, i1 } @loadv2i64() {
24
+ define void @loadv2i64 () {
25
+ ; CHECK-LABEL: define void @loadv2i64() {
30
26
; CHECK-NEXT: [[BUFFER:%.*]] = tail call target("dx.TypedBuffer", <2 x i64>, 1, 0, 0) @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v2i64_1_0_0t(i32 0, i32 0, i32 1, i32 0, i1 false, ptr null)
31
27
; CHECK-NEXT: [[TMP1:%.*]] = call { <4 x i32>, i1 } @llvm.dx.resource.load.typedbuffer.v4i32.tdx.TypedBuffer_v2i64_1_0_0t(target("dx.TypedBuffer", <2 x i64>, 1, 0, 0) [[BUFFER]], i32 0)
32
28
; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { <4 x i32>, i1 } [[TMP1]], 0
@@ -44,13 +40,9 @@ define { <2 x i64>, i1 } @loadv2i64() {
44
40
; CHECK-NEXT: [[TMP14:%.*]] = shl i64 [[TMP13]], 32
45
41
; CHECK-NEXT: [[TMP15:%.*]] = or i64 [[TMP12]], [[TMP14]]
46
42
; CHECK-NEXT: [[TMP16:%.*]] = insertelement <2 x i64> [[TMP11]], i64 [[TMP15]], i32 1
47
- ; CHECK-NEXT: [[TMP17:%.*]] = insertvalue { <2 x i64>, i1 } poison, <2 x i64> [[TMP16]], 0
48
- ; CHECK-NEXT: [[TMP18:%.*]] = extractvalue { <4 x i32>, i1 } [[TMP1]], 1
49
- ; CHECK-NEXT: [[TMP19:%.*]] = insertvalue { <2 x i64>, i1 } [[TMP17]], i1 [[TMP18]], 1
50
- ; CHECK-NEXT: ret { <2 x i64>, i1 } [[TMP19]]
43
+ ; CHECK-NEXT: ret void
51
44
;
52
45
%buffer = tail call target ("dx.TypedBuffer" , <2 x i64 >, 1 , 0 , 0 ) @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v2i64_1_0_0t (i32 0 , i32 0 , i32 1 , i32 0 , i1 false , ptr null )
53
- %result = call { <2 x i64 >, i1 } @llvm.dx.resource.load.typedbuffer.tdx.TypedBuffer_v2i64_1_0_0t (
54
- target ("dx.TypedBuffer" , <2 x i64 >, 1 , 0 , 0 ) %buffer , i32 0 )
55
- ret { <2 x i64 >, i1 } %result
46
+ %result = call { <2 x i64 >, i1 } @llvm.dx.resource.load.typedbuffer.tdx.TypedBuffer_v2i64_1_0_0t (target ("dx.TypedBuffer" , <2 x i64 >, 1 , 0 , 0 ) %buffer , i32 0 )
47
+ ret void
56
48
}
0 commit comments