6
6
define float @load_atomic_f32_global_system (ptr addrspace (1 ) %ptr ) {
7
7
; CHECK-LABEL: define float @load_atomic_f32_global_system(
8
8
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
9
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i32, ptr addrspace(1) [[PTR]] seq_cst, align 4
10
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i32 [[TMP1]] to float
9
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic float, ptr addrspace(1) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0:![0-9]+]]
11
10
; CHECK-NEXT: ret float [[TMP2]]
12
11
;
13
12
%ld = load atomic float , ptr addrspace (1 ) %ptr seq_cst , align 4 , !some.unknown.md !0
@@ -17,8 +16,7 @@ define float @load_atomic_f32_global_system(ptr addrspace(1) %ptr) {
17
16
define float @load_atomic_f32_global_agent (ptr addrspace (1 ) %ptr ) {
18
17
; CHECK-LABEL: define float @load_atomic_f32_global_agent(
19
18
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
20
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i32, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4
21
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i32 [[TMP1]] to float
19
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic float, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]
22
20
; CHECK-NEXT: ret float [[TMP2]]
23
21
;
24
22
%ld = load atomic float , ptr addrspace (1 ) %ptr syncscope("agent" ) seq_cst , align 4 , !some.unknown.md !0
@@ -28,8 +26,7 @@ define float @load_atomic_f32_global_agent(ptr addrspace(1) %ptr) {
28
26
define float @load_atomic_f32_local (ptr addrspace (3 ) %ptr ) {
29
27
; CHECK-LABEL: define float @load_atomic_f32_local(
30
28
; CHECK-SAME: ptr addrspace(3) [[PTR:%.*]]) {
31
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i32, ptr addrspace(3) [[PTR]] seq_cst, align 4
32
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i32 [[TMP1]] to float
29
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic float, ptr addrspace(3) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]
33
30
; CHECK-NEXT: ret float [[TMP2]]
34
31
;
35
32
%ld = load atomic float , ptr addrspace (3 ) %ptr seq_cst , align 4 , !some.unknown.md !0
@@ -39,8 +36,7 @@ define float @load_atomic_f32_local(ptr addrspace(3) %ptr) {
39
36
define float @load_atomic_f32_flat_system (ptr %ptr ) {
40
37
; CHECK-LABEL: define float @load_atomic_f32_flat_system(
41
38
; CHECK-SAME: ptr [[PTR:%.*]]) {
42
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i32, ptr [[PTR]] seq_cst, align 4
43
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i32 [[TMP1]] to float
39
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic float, ptr [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]
44
40
; CHECK-NEXT: ret float [[TMP2]]
45
41
;
46
42
%ld = load atomic float , ptr %ptr seq_cst , align 4 , !some.unknown.md !0
@@ -50,8 +46,7 @@ define float @load_atomic_f32_flat_system(ptr %ptr) {
50
46
define float @load_atomic_f32_flat_agent (ptr %ptr ) {
51
47
; CHECK-LABEL: define float @load_atomic_f32_flat_agent(
52
48
; CHECK-SAME: ptr [[PTR:%.*]]) {
53
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i32, ptr [[PTR]] syncscope("agent") seq_cst, align 4
54
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i32 [[TMP1]] to float
49
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic float, ptr [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]
55
50
; CHECK-NEXT: ret float [[TMP2]]
56
51
;
57
52
%ld = load atomic float , ptr %ptr syncscope("agent" ) seq_cst , align 4 , !some.unknown.md !0
@@ -61,8 +56,7 @@ define float @load_atomic_f32_flat_agent(ptr %ptr) {
61
56
define half @load_atomic_f16_global_system (ptr addrspace (1 ) %ptr ) {
62
57
; CHECK-LABEL: define half @load_atomic_f16_global_system(
63
58
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
64
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(1) [[PTR]] seq_cst, align 4
65
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to half
59
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic half, ptr addrspace(1) [[PTR]] seq_cst, align 4, !some.unknown.md [[META0]]
66
60
; CHECK-NEXT: ret half [[TMP2]]
67
61
;
68
62
%ld = load atomic half , ptr addrspace (1 ) %ptr seq_cst , align 4 , !some.unknown.md !0
@@ -72,8 +66,7 @@ define half @load_atomic_f16_global_system(ptr addrspace(1) %ptr) {
72
66
define half @load_atomic_f16_global_agent (ptr addrspace (1 ) %ptr ) {
73
67
; CHECK-LABEL: define half @load_atomic_f16_global_agent(
74
68
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
75
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4
76
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to half
69
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic half, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 4, !some.unknown.md [[META0]]
77
70
; CHECK-NEXT: ret half [[TMP2]]
78
71
;
79
72
%ld = load atomic half , ptr addrspace (1 ) %ptr syncscope("agent" ) seq_cst , align 4 , !some.unknown.md !0
@@ -83,8 +76,7 @@ define half @load_atomic_f16_global_agent(ptr addrspace(1) %ptr) {
83
76
define half @load_atomic_f16_local (ptr addrspace (3 ) %ptr ) {
84
77
; CHECK-LABEL: define half @load_atomic_f16_local(
85
78
; CHECK-SAME: ptr addrspace(3) [[PTR:%.*]]) {
86
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(3) [[PTR]] seq_cst, align 2
87
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to half
79
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic half, ptr addrspace(3) [[PTR]] seq_cst, align 2, !some.unknown.md [[META0]]
88
80
; CHECK-NEXT: ret half [[TMP2]]
89
81
;
90
82
%ld = load atomic half , ptr addrspace (3 ) %ptr seq_cst , align 2 , !some.unknown.md !0
@@ -94,8 +86,7 @@ define half @load_atomic_f16_local(ptr addrspace(3) %ptr) {
94
86
define bfloat @load_atomic_bf16_global_system (ptr addrspace (1 ) %ptr ) {
95
87
; CHECK-LABEL: define bfloat @load_atomic_bf16_global_system(
96
88
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
97
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(1) [[PTR]] seq_cst, align 2
98
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to bfloat
89
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic bfloat, ptr addrspace(1) [[PTR]] seq_cst, align 2, !some.unknown.md [[META0]]
99
90
; CHECK-NEXT: ret bfloat [[TMP2]]
100
91
;
101
92
%ld = load atomic bfloat, ptr addrspace (1 ) %ptr seq_cst , align 2 , !some.unknown.md !0
@@ -105,8 +96,7 @@ define bfloat @load_atomic_bf16_global_system(ptr addrspace(1) %ptr) {
105
96
define bfloat @load_atomic_bf16_global_agent (ptr addrspace (1 ) %ptr ) {
106
97
; CHECK-LABEL: define bfloat @load_atomic_bf16_global_agent(
107
98
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
108
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 2
109
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to bfloat
99
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic bfloat, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 2, !some.unknown.md [[META0]]
110
100
; CHECK-NEXT: ret bfloat [[TMP2]]
111
101
;
112
102
%ld = load atomic bfloat, ptr addrspace (1 ) %ptr syncscope("agent" ) seq_cst , align 2 , !some.unknown.md !0
@@ -116,8 +106,7 @@ define bfloat @load_atomic_bf16_global_agent(ptr addrspace(1) %ptr) {
116
106
define bfloat @load_atomic_bf16_local (ptr addrspace (3 ) %ptr ) {
117
107
; CHECK-LABEL: define bfloat @load_atomic_bf16_local(
118
108
; CHECK-SAME: ptr addrspace(3) [[PTR:%.*]]) {
119
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr addrspace(3) [[PTR]] seq_cst, align 2
120
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to bfloat
109
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic bfloat, ptr addrspace(3) [[PTR]] seq_cst, align 2, !some.unknown.md [[META0]]
121
110
; CHECK-NEXT: ret bfloat [[TMP2]]
122
111
;
123
112
%ld = load atomic bfloat, ptr addrspace (3 ) %ptr seq_cst , align 2 , !some.unknown.md !0
@@ -127,8 +116,7 @@ define bfloat @load_atomic_bf16_local(ptr addrspace(3) %ptr) {
127
116
define bfloat @load_atomic_bf16_flat (ptr %ptr ) {
128
117
; CHECK-LABEL: define bfloat @load_atomic_bf16_flat(
129
118
; CHECK-SAME: ptr [[PTR:%.*]]) {
130
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i16, ptr [[PTR]] seq_cst, align 2
131
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i16 [[TMP1]] to bfloat
119
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic bfloat, ptr [[PTR]] seq_cst, align 2, !some.unknown.md [[META0]]
132
120
; CHECK-NEXT: ret bfloat [[TMP2]]
133
121
;
134
122
%ld = load atomic bfloat, ptr %ptr seq_cst , align 2 , !some.unknown.md !0
@@ -138,8 +126,7 @@ define bfloat @load_atomic_bf16_flat(ptr %ptr) {
138
126
define double @load_atomic_f64_global_system (ptr addrspace (1 ) %ptr ) {
139
127
; CHECK-LABEL: define double @load_atomic_f64_global_system(
140
128
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
141
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i64, ptr addrspace(1) [[PTR]] seq_cst, align 8
142
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64 [[TMP1]] to double
129
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic double, ptr addrspace(1) [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]
143
130
; CHECK-NEXT: ret double [[TMP2]]
144
131
;
145
132
%ld = load atomic double , ptr addrspace (1 ) %ptr seq_cst , align 8 , !some.unknown.md !0
@@ -149,8 +136,7 @@ define double @load_atomic_f64_global_system(ptr addrspace(1) %ptr) {
149
136
define double @load_atomic_f64_global_agent (ptr addrspace (1 ) %ptr ) {
150
137
; CHECK-LABEL: define double @load_atomic_f64_global_agent(
151
138
; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
152
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i64, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 8
153
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64 [[TMP1]] to double
139
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic double, ptr addrspace(1) [[PTR]] syncscope("agent") seq_cst, align 8, !some.unknown.md [[META0]]
154
140
; CHECK-NEXT: ret double [[TMP2]]
155
141
;
156
142
%ld = load atomic double , ptr addrspace (1 ) %ptr syncscope("agent" ) seq_cst , align 8 , !some.unknown.md !0
@@ -160,8 +146,7 @@ define double @load_atomic_f64_global_agent(ptr addrspace(1) %ptr) {
160
146
define double @load_atomic_f64_local (ptr addrspace (3 ) %ptr ) {
161
147
; CHECK-LABEL: define double @load_atomic_f64_local(
162
148
; CHECK-SAME: ptr addrspace(3) [[PTR:%.*]]) {
163
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i64, ptr addrspace(3) [[PTR]] seq_cst, align 8
164
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64 [[TMP1]] to double
149
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic double, ptr addrspace(3) [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]
165
150
; CHECK-NEXT: ret double [[TMP2]]
166
151
;
167
152
%ld = load atomic double , ptr addrspace (3 ) %ptr seq_cst , align 8 , !some.unknown.md !0
@@ -171,8 +156,7 @@ define double @load_atomic_f64_local(ptr addrspace(3) %ptr) {
171
156
define double @load_atomic_f64_flat_system (ptr %ptr ) {
172
157
; CHECK-LABEL: define double @load_atomic_f64_flat_system(
173
158
; CHECK-SAME: ptr [[PTR:%.*]]) {
174
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i64, ptr [[PTR]] seq_cst, align 8
175
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64 [[TMP1]] to double
159
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic double, ptr [[PTR]] seq_cst, align 8, !some.unknown.md [[META0]]
176
160
; CHECK-NEXT: ret double [[TMP2]]
177
161
;
178
162
%ld = load atomic double , ptr %ptr seq_cst , align 8 , !some.unknown.md !0
@@ -182,8 +166,7 @@ define double @load_atomic_f64_flat_system(ptr %ptr) {
182
166
define double @load_atomic_f64_flat_agent (ptr %ptr ) {
183
167
; CHECK-LABEL: define double @load_atomic_f64_flat_agent(
184
168
; CHECK-SAME: ptr [[PTR:%.*]]) {
185
- ; CHECK-NEXT: [[TMP1:%.*]] = load atomic i64, ptr [[PTR]] syncscope("agent") seq_cst, align 8
186
- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64 [[TMP1]] to double
169
+ ; CHECK-NEXT: [[TMP2:%.*]] = load atomic double, ptr [[PTR]] syncscope("agent") seq_cst, align 8, !some.unknown.md [[META0]]
187
170
; CHECK-NEXT: ret double [[TMP2]]
188
171
;
189
172
%ld = load atomic double , ptr %ptr syncscope("agent" ) seq_cst , align 8 , !some.unknown.md !0
@@ -193,3 +176,6 @@ define double @load_atomic_f64_flat_agent(ptr %ptr) {
193
176
!0 = !{}
194
177
195
178
179
+ ;.
180
+ ; CHECK: [[META0]] = !{}
181
+ ;.
0 commit comments