@@ -7,15 +7,18 @@ target triple = "nvptx64"
7
7
@no_spmd_exec_mode = weak constant i8 1
8
8
@spmd_exec_mode = weak constant i8 0
9
9
@parallel_exec_mode = weak constant i8 0
10
- @G = external global i8
10
+ @G = external global i16
11
11
@llvm.compiler.used = appending global [3 x ptr ] [ptr @no_spmd_exec_mode , ptr @spmd_exec_mode , ptr @parallel_exec_mode ], section "llvm.metadata"
12
12
13
13
;.
14
14
; CHECK: @[[NO_SPMD_EXEC_MODE:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 1
15
15
; CHECK: @[[SPMD_EXEC_MODE:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 0
16
16
; CHECK: @[[PARALLEL_EXEC_MODE:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 0
17
- ; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external global i8
17
+ ; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external global i16
18
18
; CHECK: @[[LLVM_COMPILER_USED:[a-zA-Z0-9_$"\\.-]+]] = appending global [3 x ptr] [ptr @no_spmd_exec_mode, ptr @spmd_exec_mode, ptr @parallel_exec_mode], section "llvm.metadata"
19
+ ; CHECK: @[[NONE_SPMD_NESTED_PARALLELISM:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 0
20
+ ; CHECK: @[[SPMD_NESTED_PARALLELISM:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 0
21
+ ; CHECK: @[[PARALLEL_NESTED_PARALLELISM:[a-zA-Z0-9_$"\\.-]+]] = weak constant i8 0
19
22
;.
20
23
define weak void @none_spmd () {
21
24
; CHECK-LABEL: define {{[^@]+}}@none_spmd() {
@@ -64,19 +67,19 @@ define weak void @parallel() {
64
67
65
68
define internal void @mixed_helper () {
66
69
; CHECK-LABEL: define {{[^@]+}}@mixed_helper() {
67
- ; CHECK-NEXT: [[LEVEL:%.*]] = call i8 @__kmpc_parallel_level()
68
- ; CHECK-NEXT: store i8 [[LEVEL]], ptr @G, align 1
70
+ ; CHECK-NEXT: [[LEVEL:%.*]] = call zeroext i16 @__kmpc_parallel_level(ptr null, i32 0 )
71
+ ; CHECK-NEXT: store i16 [[LEVEL]], ptr @G, align 2
69
72
; CHECK-NEXT: ret void
70
73
;
71
- %level = call i8 @__kmpc_parallel_level ()
72
- store i8 %level , ptr @G
74
+ %level = call zeroext i16 @__kmpc_parallel_level (ptr null , i32 0 )
75
+ store i16 %level , ptr @G
73
76
ret void
74
77
}
75
78
76
79
define internal void @none_spmd_helper () {
77
80
; CHECK-LABEL: define {{[^@]+}}@none_spmd_helper() {
78
- ; CHECK-NEXT: [[LEVEL12:%.*]] = call i8 @__kmpc_parallel_level()
79
- ; CHECK-NEXT: [[C:%.*]] = icmp eq i8 [[LEVEL12]], 0
81
+ ; CHECK-NEXT: [[LEVEL12:%.*]] = call zeroext i16 @__kmpc_parallel_level(ptr null, i32 0 )
82
+ ; CHECK-NEXT: [[C:%.*]] = icmp eq i16 [[LEVEL12]], 0
80
83
; CHECK-NEXT: br i1 [[C]], label [[T:%.*]], label [[F:%.*]]
81
84
; CHECK: t:
82
85
; CHECK-NEXT: call void @foo()
@@ -85,8 +88,8 @@ define internal void @none_spmd_helper() {
85
88
; CHECK-NEXT: call void @bar()
86
89
; CHECK-NEXT: ret void
87
90
;
88
- %level12 = call i8 @__kmpc_parallel_level ()
89
- %c = icmp eq i8 %level12 , 0
91
+ %level12 = call zeroext i16 @__kmpc_parallel_level (ptr null , i32 0 )
92
+ %c = icmp eq i16 %level12 , 0
90
93
br i1 %c , label %t , label %f
91
94
t:
92
95
call void @foo ()
98
101
99
102
define internal void @spmd_helper () {
100
103
; CHECK-LABEL: define {{[^@]+}}@spmd_helper() {
101
- ; CHECK-NEXT: store i8 1, ptr @G, align 1
104
+ ; CHECK-NEXT: store i8 1, ptr @G, align 2
102
105
; CHECK-NEXT: ret void
103
106
;
104
- %level = call i8 @__kmpc_parallel_level ()
105
- store i8 %level , ptr @G
107
+ %level = call zeroext i16 @__kmpc_parallel_level (ptr null , i32 0 )
108
+ store i16 %level , ptr @G
106
109
ret void
107
110
}
108
111
@@ -118,18 +121,18 @@ define internal void @__kmpc_parallel_51(ptr, i32, i32, i32, i32, ptr, ptr, ptr,
118
121
119
122
define internal void @parallel_helper () {
120
123
; CHECK-LABEL: define {{[^@]+}}@parallel_helper() {
121
- ; CHECK-NEXT: [[LEVEL:%.*]] = call i8 @__kmpc_parallel_level()
122
- ; CHECK-NEXT: store i8 [[LEVEL]], ptr @G, align 1
124
+ ; CHECK-NEXT: [[LEVEL:%.*]] = call zeroext i16 @__kmpc_parallel_level(ptr null, i32 0 )
125
+ ; CHECK-NEXT: store i16 [[LEVEL]], ptr @G, align 2
123
126
; CHECK-NEXT: ret void
124
127
;
125
- %level = call i8 @__kmpc_parallel_level ()
126
- store i8 %level , ptr @G
128
+ %level = call zeroext i16 @__kmpc_parallel_level (ptr null , i32 0 )
129
+ store i16 %level , ptr @G
127
130
ret void
128
131
}
129
132
130
133
declare void @foo ()
131
134
declare void @bar ()
132
- declare i8 @__kmpc_parallel_level ()
135
+ declare zeroext i16 @__kmpc_parallel_level (ptr , i32 )
133
136
declare i32 @__kmpc_target_init (ptr , i8 zeroext , i1 zeroext ) #1
134
137
declare void @__kmpc_target_deinit (ptr nocapture readnone , i8 zeroext ) #1
135
138
0 commit comments