1
1
; RUN: opt -S -dxil-finalize-linkage -mtriple=dxil-unknown-shadermodel6.5-compute %s | FileCheck %s
2
- ; RUN: llc %s --filetype=asm -o - | FileCheck %s --check-prefixes=CHECK-LLC
2
+ ; TODO: Add back the llc test once #149179 and #149180 are fixed
3
3
4
4
target triple = "dxilv1.5-pc-shadermodel6.5-compute"
5
5
6
6
; DXILFinalizeLinkage changes linkage of all functions that are hidden to
7
- ; internal, and converts private global variables to internal linkage.
7
+ ; internal, converts private global variables to internal linkage, and removes
8
+ ; unused global variables.
9
+
10
+ ; CHECK-NOT: @aTile
11
+ @aTile = hidden addrspace (3 ) global [4 x [1 x i32 ]] zeroinitializer , align 4
12
+
13
+ ; CHECK-NOT: @bTile
14
+ @bTile = hidden addrspace (3 ) global [1 x <1 x i32 >] zeroinitializer , align 4
8
15
9
16
; CHECK: @switch.table = internal unnamed_addr constant [4 x i32]
10
17
@switch.table = private unnamed_addr constant [4 x i32 ] [i32 1 , i32 257 , i32 65793 , i32 16843009 ], align 4
@@ -27,6 +34,17 @@ target triple = "dxilv1.5-pc-shadermodel6.5-compute"
27
34
; CHECK: @hidden_var = hidden global i32
28
35
@hidden_var = hidden global i32 1 , align 4
29
36
37
+ define void @anchor_function () #0 {
38
+ entry:
39
+ %0 = load i32 , ptr @switch.table , align 4
40
+ %1 = load [3 x float ], ptr @private_array , align 4
41
+ %2 = load i32 , ptr @private_var , align 4
42
+ %3 = load i32 , ptr @internal_var , align 4
43
+ %4 = load i32 , ptr @external_var , align 4
44
+ %5 = load i32 , ptr @hidden_var , align 4
45
+ ret void
46
+ }
47
+
30
48
; CHECK-NOT: define internal void @"?f1@@YAXXZ"()
31
49
define void @"?f1@@YAXXZ" () #0 {
32
50
entry:
0 commit comments