comparison llvm/test/CodeGen/AMDGPU/fp-atomic-to-s_denormmode.mir @ 223:5f17cb93ff66 llvm-original

LLVM13 (2021/7/18)
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 18 Jul 2021 22:43:00 +0900
parents 79ff65ed7e25
children c4bab56944e8
comparison
equal deleted inserted replaced
222:81f6424ef0e3 223:5f17cb93ff66
6 # GCN-NEXT: S_DENORM_MODE 6 # GCN-NEXT: S_DENORM_MODE
7 --- 7 ---
8 name: flat_atomic_fcmpswap_to_s_denorm_mode 8 name: flat_atomic_fcmpswap_to_s_denorm_mode
9 body: | 9 body: |
10 bb.0: 10 bb.0:
11 FLAT_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 11 FLAT_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
12 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 12 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
13 ... 13 ...
14 14
15 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode 15 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
16 # GCN: FLAT_ATOMIC_FCMPSWAP_X2 16 # GCN: FLAT_ATOMIC_FCMPSWAP_X2
18 # GCN-NEXT: S_DENORM_MODE 18 # GCN-NEXT: S_DENORM_MODE
19 --- 19 ---
20 name: flat_atomic_fcmpswap_x2_to_s_denorm_mode 20 name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
21 body: | 21 body: |
22 bb.0: 22 bb.0:
23 FLAT_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_128, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 23 FLAT_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_128, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
24 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 24 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
25 ... 25 ...
26 26
27 # GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode 27 # GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode
28 # GCN: FLAT_ATOMIC_FMAX 28 # GCN: FLAT_ATOMIC_FMAX
30 # GCN-NEXT: S_DENORM_MODE 30 # GCN-NEXT: S_DENORM_MODE
31 --- 31 ---
32 name: flat_atomic_fmax_to_s_denorm_mode 32 name: flat_atomic_fmax_to_s_denorm_mode
33 body: | 33 body: |
34 bb.0: 34 bb.0:
35 FLAT_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 35 FLAT_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
36 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 36 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
37 ... 37 ...
38 38
39 # GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode 39 # GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode
40 # GCN: FLAT_ATOMIC_FMAX_X2 40 # GCN: FLAT_ATOMIC_FMAX_X2
42 # GCN-NEXT: S_DENORM_MODE 42 # GCN-NEXT: S_DENORM_MODE
43 --- 43 ---
44 name: flat_atomic_fmax_x2_to_s_denorm_mode 44 name: flat_atomic_fmax_x2_to_s_denorm_mode
45 body: | 45 body: |
46 bb.0: 46 bb.0:
47 FLAT_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 47 FLAT_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
48 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 48 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
49 ... 49 ...
50 50
51 # GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode 51 # GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode
52 # GCN: FLAT_ATOMIC_FMIN 52 # GCN: FLAT_ATOMIC_FMIN
54 # GCN-NEXT: S_DENORM_MODE 54 # GCN-NEXT: S_DENORM_MODE
55 --- 55 ---
56 name: flat_atomic_fmin_to_s_denorm_mode 56 name: flat_atomic_fmin_to_s_denorm_mode
57 body: | 57 body: |
58 bb.0: 58 bb.0:
59 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 59 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
60 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 60 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
61 ... 61 ...
62 62
63 # GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode 63 # GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode
64 # GCN: FLAT_ATOMIC_FMIN_X2 64 # GCN: FLAT_ATOMIC_FMIN_X2
66 # GCN-NEXT: S_DENORM_MODE 66 # GCN-NEXT: S_DENORM_MODE
67 --- 67 ---
68 name: flat_atomic_fmin_x2_to_s_denorm_mode 68 name: flat_atomic_fmin_x2_to_s_denorm_mode
69 body: | 69 body: |
70 bb.0: 70 bb.0:
71 FLAT_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 71 FLAT_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
72 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 72 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
73 ... 73 ...
74 74
75 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 75 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
76 # GCN: FLAT_ATOMIC_FCMPSWAP_X2_RTN 76 # GCN: FLAT_ATOMIC_FCMPSWAP_X2_RTN
78 # GCN-NEXT: S_DENORM_MODE 78 # GCN-NEXT: S_DENORM_MODE
79 --- 79 ---
80 name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 80 name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
81 body: | 81 body: |
82 bb.0: 82 bb.0:
83 %2:vreg_64 = FLAT_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_128, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 83 %2:vreg_64 = FLAT_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_128, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
84 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 84 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
85 ... 85 ...
86 86
87 # GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode 87 # GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode
88 # GCN: FLAT_ATOMIC_FMAX_RTN 88 # GCN: FLAT_ATOMIC_FMAX_RTN
90 # GCN-NEXT: S_DENORM_MODE 90 # GCN-NEXT: S_DENORM_MODE
91 --- 91 ---
92 name: flat_atomic_fmax_rtn_to_s_denorm_mode 92 name: flat_atomic_fmax_rtn_to_s_denorm_mode
93 body: | 93 body: |
94 bb.0: 94 bb.0:
95 %2:vgpr_32 = FLAT_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 95 %2:vgpr_32 = FLAT_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
96 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 96 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
97 ... 97 ...
98 98
99 # GCN-LABEL: name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode 99 # GCN-LABEL: name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode
100 # GCN: FLAT_ATOMIC_FMAX_X2_RTN 100 # GCN: FLAT_ATOMIC_FMAX_X2_RTN
102 # GCN-NEXT: S_DENORM_MODE 102 # GCN-NEXT: S_DENORM_MODE
103 --- 103 ---
104 name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode 104 name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode
105 body: | 105 body: |
106 bb.0: 106 bb.0:
107 %2:vreg_64 = FLAT_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 107 %2:vreg_64 = FLAT_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
108 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 108 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
109 ... 109 ...
110 110
111 # GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode 111 # GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode
112 # GCN: FLAT_ATOMIC_FMIN_RTN 112 # GCN: FLAT_ATOMIC_FMIN_RTN
114 # GCN-NEXT: S_DENORM_MODE 114 # GCN-NEXT: S_DENORM_MODE
115 --- 115 ---
116 name: flat_atomic_fmin_rtn_to_s_denorm_mode 116 name: flat_atomic_fmin_rtn_to_s_denorm_mode
117 body: | 117 body: |
118 bb.0: 118 bb.0:
119 %2:vgpr_32 = FLAT_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 119 %2:vgpr_32 = FLAT_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
120 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 120 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
121 ... 121 ...
122 122
123 # GCN-LABEL: name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode 123 # GCN-LABEL: name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode
124 # GCN: FLAT_ATOMIC_FMIN_X2_RTN 124 # GCN: FLAT_ATOMIC_FMIN_X2_RTN
126 # GCN-NEXT: S_DENORM_MODE 126 # GCN-NEXT: S_DENORM_MODE
127 --- 127 ---
128 name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode 128 name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode
129 body: | 129 body: |
130 bb.0: 130 bb.0:
131 %2:vreg_64 = FLAT_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 131 %2:vreg_64 = FLAT_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
132 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 132 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
133 ... 133 ...
134 134
135 # GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode 135 # GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
136 # GCN: FLAT_ATOMIC_FCMPSWAP_RTN 136 # GCN: FLAT_ATOMIC_FCMPSWAP_RTN
138 # GCN-NEXT: S_DENORM_MODE 138 # GCN-NEXT: S_DENORM_MODE
139 --- 139 ---
140 name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode 140 name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
141 body: | 141 body: |
142 bb.0: 142 bb.0:
143 %2:vgpr_32 = FLAT_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 143 %2:vgpr_32 = FLAT_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
144 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 144 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
145 ... 145 ...
146 146
147 # GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode 147 # GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode
148 # GCN: GLOBAL_ATOMIC_FCMPSWAP 148 # GCN: GLOBAL_ATOMIC_FCMPSWAP
150 # GCN-NEXT: S_DENORM_MODE 150 # GCN-NEXT: S_DENORM_MODE
151 --- 151 ---
152 name: global_atomic_fcmpswap_to_s_denorm_mode 152 name: global_atomic_fcmpswap_to_s_denorm_mode
153 body: | 153 body: |
154 bb.0: 154 bb.0:
155 GLOBAL_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 155 GLOBAL_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
156 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 156 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
157 ... 157 ...
158 158
159 # GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode 159 # GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode
160 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2 160 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2
162 # GCN-NEXT: S_DENORM_MODE 162 # GCN-NEXT: S_DENORM_MODE
163 --- 163 ---
164 name: global_atomic_fcmpswap_x2_to_s_denorm_mode 164 name: global_atomic_fcmpswap_x2_to_s_denorm_mode
165 body: | 165 body: |
166 bb.0: 166 bb.0:
167 GLOBAL_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 167 GLOBAL_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
168 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 168 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
169 ... 169 ...
170 170
171 # GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode 171 # GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode
172 # GCN: GLOBAL_ATOMIC_FMAX 172 # GCN: GLOBAL_ATOMIC_FMAX
174 # GCN-NEXT: S_DENORM_MODE 174 # GCN-NEXT: S_DENORM_MODE
175 --- 175 ---
176 name: global_atomic_fmax_to_s_denorm_mode 176 name: global_atomic_fmax_to_s_denorm_mode
177 body: | 177 body: |
178 bb.0: 178 bb.0:
179 GLOBAL_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 179 GLOBAL_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
180 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 180 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
181 ... 181 ...
182 182
183 # GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode 183 # GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode
184 # GCN: GLOBAL_ATOMIC_FMAX_X2 184 # GCN: GLOBAL_ATOMIC_FMAX_X2
186 # GCN-NEXT: S_DENORM_MODE 186 # GCN-NEXT: S_DENORM_MODE
187 --- 187 ---
188 name: global_atomic_fmax_x2_to_s_denorm_mode 188 name: global_atomic_fmax_x2_to_s_denorm_mode
189 body: | 189 body: |
190 bb.0: 190 bb.0:
191 GLOBAL_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 191 GLOBAL_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
192 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 192 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
193 ... 193 ...
194 194
195 # GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode 195 # GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode
196 # GCN: GLOBAL_ATOMIC_FMIN 196 # GCN: GLOBAL_ATOMIC_FMIN
198 # GCN-NEXT: S_DENORM_MODE 198 # GCN-NEXT: S_DENORM_MODE
199 --- 199 ---
200 name: global_atomic_fmin_to_s_denorm_mode 200 name: global_atomic_fmin_to_s_denorm_mode
201 body: | 201 body: |
202 bb.0: 202 bb.0:
203 GLOBAL_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 203 GLOBAL_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
204 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 204 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
205 ... 205 ...
206 206
207 # GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode 207 # GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode
208 # GCN: GLOBAL_ATOMIC_FMIN_X2 208 # GCN: GLOBAL_ATOMIC_FMIN_X2
210 # GCN-NEXT: S_DENORM_MODE 210 # GCN-NEXT: S_DENORM_MODE
211 --- 211 ---
212 name: global_atomic_fmin_x2_to_s_denorm_mode 212 name: global_atomic_fmin_x2_to_s_denorm_mode
213 body: | 213 body: |
214 bb.0: 214 bb.0:
215 GLOBAL_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 215 GLOBAL_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
216 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 216 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
217 ... 217 ...
218 218
219 # GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode 219 # GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
220 # GCN: GLOBAL_ATOMIC_FCMPSWAP_RTN 220 # GCN: GLOBAL_ATOMIC_FCMPSWAP_RTN
222 # GCN-NEXT: S_DENORM_MODE 222 # GCN-NEXT: S_DENORM_MODE
223 --- 223 ---
224 name: global_atomic_fcmpswap_rtn_to_s_denorm_mode 224 name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
225 body: | 225 body: |
226 bb.0: 226 bb.0:
227 %2:vgpr_32 = GLOBAL_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 227 %2:vgpr_32 = GLOBAL_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
228 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 228 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
229 ... 229 ...
230 230
231 # GCN-LABEL: name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 231 # GCN-LABEL: name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
232 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_RTN 232 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_RTN
234 # GCN-NEXT: S_DENORM_MODE 234 # GCN-NEXT: S_DENORM_MODE
235 --- 235 ---
236 name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 236 name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
237 body: | 237 body: |
238 bb.0: 238 bb.0:
239 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 239 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
240 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 240 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
241 ... 241 ...
242 242
243 # GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode 243 # GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode
244 # GCN: GLOBAL_ATOMIC_FMAX_RTN 244 # GCN: GLOBAL_ATOMIC_FMAX_RTN
246 # GCN-NEXT: S_DENORM_MODE 246 # GCN-NEXT: S_DENORM_MODE
247 --- 247 ---
248 name: global_atomic_fmax_rtn_to_s_denorm_mode 248 name: global_atomic_fmax_rtn_to_s_denorm_mode
249 body: | 249 body: |
250 bb.0: 250 bb.0:
251 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 251 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
252 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 252 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
253 ... 253 ...
254 254
255 # GCN-LABEL: name: global_atomic_fmax_x2_rtn_to_s_denorm_mode 255 # GCN-LABEL: name: global_atomic_fmax_x2_rtn_to_s_denorm_mode
256 # GCN: GLOBAL_ATOMIC_FMAX_X2_RTN 256 # GCN: GLOBAL_ATOMIC_FMAX_X2_RTN
258 # GCN-NEXT: S_DENORM_MODE 258 # GCN-NEXT: S_DENORM_MODE
259 --- 259 ---
260 name: global_atomic_fmax_x2_rtn_to_s_denorm_mode 260 name: global_atomic_fmax_x2_rtn_to_s_denorm_mode
261 body: | 261 body: |
262 bb.0: 262 bb.0:
263 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 263 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
264 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 264 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
265 ... 265 ...
266 266
267 # GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode 267 # GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode
268 # GCN: GLOBAL_ATOMIC_FMIN_RTN 268 # GCN: GLOBAL_ATOMIC_FMIN_RTN
270 # GCN-NEXT: S_DENORM_MODE 270 # GCN-NEXT: S_DENORM_MODE
271 --- 271 ---
272 name: global_atomic_fmin_rtn_to_s_denorm_mode 272 name: global_atomic_fmin_rtn_to_s_denorm_mode
273 body: | 273 body: |
274 bb.0: 274 bb.0:
275 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 275 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
276 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 276 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
277 ... 277 ...
278 278
279 # GCN-LABEL: name: global_atomic_fmin_x2_rtn_to_s_denorm_mode 279 # GCN-LABEL: name: global_atomic_fmin_x2_rtn_to_s_denorm_mode
280 # GCN: GLOBAL_ATOMIC_FMIN_X2_RTN 280 # GCN: GLOBAL_ATOMIC_FMIN_X2_RTN
282 # GCN-NEXT: S_DENORM_MODE 282 # GCN-NEXT: S_DENORM_MODE
283 --- 283 ---
284 name: global_atomic_fmin_x2_rtn_to_s_denorm_mode 284 name: global_atomic_fmin_x2_rtn_to_s_denorm_mode
285 body: | 285 body: |
286 bb.0: 286 bb.0:
287 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 287 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
288 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 288 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
289 ... 289 ...
290 290
291 # GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode 291 # GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
292 # GCN: GLOBAL_ATOMIC_FCMPSWAP_SADDR 292 # GCN: GLOBAL_ATOMIC_FCMPSWAP_SADDR
294 # GCN-NEXT: S_DENORM_MODE 294 # GCN-NEXT: S_DENORM_MODE
295 --- 295 ---
296 name: global_atomic_fcmpswap_saddr_to_s_denorm_mode 296 name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
297 body: | 297 body: |
298 bb.0: 298 bb.0:
299 GLOBAL_ATOMIC_FCMPSWAP_SADDR undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 299 GLOBAL_ATOMIC_FCMPSWAP_SADDR undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
300 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 300 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
301 ... 301 ...
302 302
303 # GCN-LABEL: name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode 303 # GCN-LABEL: name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode
304 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN 304 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN
306 # GCN-NEXT: S_DENORM_MODE 306 # GCN-NEXT: S_DENORM_MODE
307 --- 307 ---
308 name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode 308 name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode
309 body: | 309 body: |
310 bb.0: 310 bb.0:
311 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 311 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
312 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 312 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
313 ... 313 ...
314 314
315 # GCN-LABEL: name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode 315 # GCN-LABEL: name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode
316 # GCN: GLOBAL_ATOMIC_FMAX_SADDR_RTN 316 # GCN: GLOBAL_ATOMIC_FMAX_SADDR_RTN
318 # GCN-NEXT: S_DENORM_MODE 318 # GCN-NEXT: S_DENORM_MODE
319 --- 319 ---
320 name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode 320 name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode
321 body: | 321 body: |
322 bb.0: 322 bb.0:
323 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 323 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
324 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 324 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
325 ... 325 ...
326 326
327 # GCN-LABEL: name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode 327 # GCN-LABEL: name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode
328 # GCN: GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN 328 # GCN: GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN
330 # GCN-NEXT: S_DENORM_MODE 330 # GCN-NEXT: S_DENORM_MODE
331 --- 331 ---
332 name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode 332 name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode
333 body: | 333 body: |
334 bb.0: 334 bb.0:
335 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 335 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
336 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 336 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
337 ... 337 ...
338 338
339 # GCN-LABEL: name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode 339 # GCN-LABEL: name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode
340 # GCN: GLOBAL_ATOMIC_FMIN_SADDR_RTN 340 # GCN: GLOBAL_ATOMIC_FMIN_SADDR_RTN
342 # GCN-NEXT: S_DENORM_MODE 342 # GCN-NEXT: S_DENORM_MODE
343 --- 343 ---
344 name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode 344 name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode
345 body: | 345 body: |
346 bb.0: 346 bb.0:
347 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 347 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
348 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 348 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
349 ... 349 ...
350 350
351 # GCN-LABEL: name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode 351 # GCN-LABEL: name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode
352 # GCN: GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN 352 # GCN: GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN
354 # GCN-NEXT: S_DENORM_MODE 354 # GCN-NEXT: S_DENORM_MODE
355 --- 355 ---
356 name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode 356 name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode
357 body: | 357 body: |
358 bb.0: 358 bb.0:
359 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 359 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
360 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 360 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
361 ... 361 ...
362 362
363 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt 363 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt
364 # GCN: FLAT_ATOMIC_FMIN 364 # GCN: FLAT_ATOMIC_FMIN
366 # GCN-NEXT: S_DENORM_MODE 366 # GCN-NEXT: S_DENORM_MODE
367 --- 367 ---
368 name: flat_fp_atomic_to_s_denorm_mode_waitcnt 368 name: flat_fp_atomic_to_s_denorm_mode_waitcnt
369 body: | 369 body: |
370 bb.0: 370 bb.0:
371 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 371 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
372 S_WAITCNT 0 372 S_WAITCNT 0
373 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 373 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
374 ... 374 ...
375 375
376 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu 376 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu
379 # GCN-NEXT: S_DENORM_MODE 379 # GCN-NEXT: S_DENORM_MODE
380 --- 380 ---
381 name: flat_fp_atomic_to_s_denorm_mode_valu 381 name: flat_fp_atomic_to_s_denorm_mode_valu
382 body: | 382 body: |
383 bb.0: 383 bb.0:
384 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst 4 on `float addrspace(1)* undef`) 384 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
385 %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $mode, implicit $exec 385 %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $mode, implicit $exec
386 S_DENORM_MODE 0, implicit-def $mode, implicit $mode 386 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
387 ... 387 ...