comparison llvm/test/CodeGen/AMDGPU/fp-atomic-to-s_denormmode.mir @ 221:79ff65ed7e25

LLVM12 Original
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Jun 2021 19:15:29 +0900
parents 1d019706d866
children 5f17cb93ff66
comparison
equal deleted inserted replaced
220:42394fc6a535 221:79ff65ed7e25
1 # RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s 1 # RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s
2 2
3 # GCN-LABEL: name: flat_atomic_fcmpswap_to_s_denorm_mode 3 # GCN-LABEL: name: flat_atomic_fcmpswap_to_s_denorm_mode
4 # GCN: FLAT_ATOMIC_FCMPSWAP 4 # GCN: FLAT_ATOMIC_FCMPSWAP
5 # GCN-NEXT: S_NOP 0 5 # GCN-NEXT: S_NOP 2
6 # GCN-NEXT: S_NOP 0
7 # GCN-NEXT: S_NOP 0
8 # GCN-NEXT: S_DENORM_MODE 6 # GCN-NEXT: S_DENORM_MODE
9 --- 7 ---
10 name: flat_atomic_fcmpswap_to_s_denorm_mode 8 name: flat_atomic_fcmpswap_to_s_denorm_mode
11 body: | 9 body: |
12 bb.0: 10 bb.0:
13 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 4 on `float addrspace(1)* undef`)
14 S_DENORM_MODE 0 12 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
15 ... 13 ...
16 14
17 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode 15 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
18 # GCN: FLAT_ATOMIC_FCMPSWAP_X2 16 # GCN: FLAT_ATOMIC_FCMPSWAP_X2
19 # GCN-NEXT: S_NOP 0 17 # GCN-NEXT: S_NOP 2
20 # GCN-NEXT: S_NOP 0
21 # GCN-NEXT: S_NOP 0
22 # GCN-NEXT: S_DENORM_MODE 18 # GCN-NEXT: S_DENORM_MODE
23 --- 19 ---
24 name: flat_atomic_fcmpswap_x2_to_s_denorm_mode 20 name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
25 body: | 21 body: |
26 bb.0: 22 bb.0:
27 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 4 on `float addrspace(1)* undef`)
28 S_DENORM_MODE 0 24 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
29 ... 25 ...
30 26
31 # GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode 27 # GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode
32 # GCN: FLAT_ATOMIC_FMAX 28 # GCN: FLAT_ATOMIC_FMAX
33 # GCN-NEXT: S_NOP 0 29 # GCN-NEXT: S_NOP 2
34 # GCN-NEXT: S_NOP 0
35 # GCN-NEXT: S_NOP 0
36 # GCN-NEXT: S_DENORM_MODE 30 # GCN-NEXT: S_DENORM_MODE
37 --- 31 ---
38 name: flat_atomic_fmax_to_s_denorm_mode 32 name: flat_atomic_fmax_to_s_denorm_mode
39 body: | 33 body: |
40 bb.0: 34 bb.0:
41 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 4 on `float addrspace(1)* undef`)
42 S_DENORM_MODE 0 36 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
43 ... 37 ...
44 38
45 # GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode 39 # GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode
46 # GCN: FLAT_ATOMIC_FMAX_X2 40 # GCN: FLAT_ATOMIC_FMAX_X2
47 # GCN-NEXT: S_NOP 0 41 # GCN-NEXT: S_NOP 2
48 # GCN-NEXT: S_NOP 0
49 # GCN-NEXT: S_NOP 0
50 # GCN-NEXT: S_DENORM_MODE 42 # GCN-NEXT: S_DENORM_MODE
51 --- 43 ---
52 name: flat_atomic_fmax_x2_to_s_denorm_mode 44 name: flat_atomic_fmax_x2_to_s_denorm_mode
53 body: | 45 body: |
54 bb.0: 46 bb.0:
55 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 4 on `float addrspace(1)* undef`)
56 S_DENORM_MODE 0 48 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
57 ... 49 ...
58 50
59 # GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode 51 # GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode
60 # GCN: FLAT_ATOMIC_FMIN 52 # GCN: FLAT_ATOMIC_FMIN
61 # GCN-NEXT: S_NOP 0 53 # GCN-NEXT: S_NOP 2
62 # GCN-NEXT: S_NOP 0
63 # GCN-NEXT: S_NOP 0
64 # GCN-NEXT: S_DENORM_MODE 54 # GCN-NEXT: S_DENORM_MODE
65 --- 55 ---
66 name: flat_atomic_fmin_to_s_denorm_mode 56 name: flat_atomic_fmin_to_s_denorm_mode
67 body: | 57 body: |
68 bb.0: 58 bb.0:
69 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 4 on `float addrspace(1)* undef`)
70 S_DENORM_MODE 0 60 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
71 ... 61 ...
72 62
73 # GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode 63 # GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode
74 # GCN: FLAT_ATOMIC_FMIN_X2 64 # GCN: FLAT_ATOMIC_FMIN_X2
75 # GCN-NEXT: S_NOP 0 65 # GCN-NEXT: S_NOP 2
76 # GCN-NEXT: S_NOP 0
77 # GCN-NEXT: S_NOP 0
78 # GCN-NEXT: S_DENORM_MODE 66 # GCN-NEXT: S_DENORM_MODE
79 --- 67 ---
80 name: flat_atomic_fmin_x2_to_s_denorm_mode 68 name: flat_atomic_fmin_x2_to_s_denorm_mode
81 body: | 69 body: |
82 bb.0: 70 bb.0:
83 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 4 on `float addrspace(1)* undef`)
84 S_DENORM_MODE 0 72 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
85 ... 73 ...
86 74
87 # 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
88 # GCN: FLAT_ATOMIC_FCMPSWAP_X2_RTN 76 # GCN: FLAT_ATOMIC_FCMPSWAP_X2_RTN
89 # GCN-NEXT: S_NOP 0 77 # GCN-NEXT: S_NOP 2
90 # GCN-NEXT: S_NOP 0
91 # GCN-NEXT: S_NOP 0
92 # GCN-NEXT: S_DENORM_MODE 78 # GCN-NEXT: S_DENORM_MODE
93 --- 79 ---
94 name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 80 name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
95 body: | 81 body: |
96 bb.0: 82 bb.0:
97 %2:vreg_64 = FLAT_ATOMIC_FCMPSWAP_X2_RTN 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`) 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`)
98 S_DENORM_MODE 0 84 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
99 ... 85 ...
100 86
101 # GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode 87 # GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode
102 # GCN: FLAT_ATOMIC_FMAX_RTN 88 # GCN: FLAT_ATOMIC_FMAX_RTN
103 # GCN-NEXT: S_NOP 0 89 # GCN-NEXT: S_NOP 2
104 # GCN-NEXT: S_NOP 0
105 # GCN-NEXT: S_NOP 0
106 # GCN-NEXT: S_DENORM_MODE 90 # GCN-NEXT: S_DENORM_MODE
107 --- 91 ---
108 name: flat_atomic_fmax_rtn_to_s_denorm_mode 92 name: flat_atomic_fmax_rtn_to_s_denorm_mode
109 body: | 93 body: |
110 bb.0: 94 bb.0:
111 %2:vgpr_32 = FLAT_ATOMIC_FMAX_RTN 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`) 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`)
112 S_DENORM_MODE 0 96 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
113 ... 97 ...
114 98
115 # 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
116 # GCN: FLAT_ATOMIC_FMAX_X2_RTN 100 # GCN: FLAT_ATOMIC_FMAX_X2_RTN
117 # GCN-NEXT: S_NOP 0 101 # GCN-NEXT: S_NOP 2
118 # GCN-NEXT: S_NOP 0
119 # GCN-NEXT: S_NOP 0
120 # GCN-NEXT: S_DENORM_MODE 102 # GCN-NEXT: S_DENORM_MODE
121 --- 103 ---
122 name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode 104 name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode
123 body: | 105 body: |
124 bb.0: 106 bb.0:
125 %2:vreg_64 = FLAT_ATOMIC_FMAX_X2_RTN 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`) 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`)
126 S_DENORM_MODE 0 108 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
127 ... 109 ...
128 110
129 # GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode 111 # GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode
130 # GCN: FLAT_ATOMIC_FMIN_RTN 112 # GCN: FLAT_ATOMIC_FMIN_RTN
131 # GCN-NEXT: S_NOP 0 113 # GCN-NEXT: S_NOP 2
132 # GCN-NEXT: S_NOP 0
133 # GCN-NEXT: S_NOP 0
134 # GCN-NEXT: S_DENORM_MODE 114 # GCN-NEXT: S_DENORM_MODE
135 --- 115 ---
136 name: flat_atomic_fmin_rtn_to_s_denorm_mode 116 name: flat_atomic_fmin_rtn_to_s_denorm_mode
137 body: | 117 body: |
138 bb.0: 118 bb.0:
139 %2:vgpr_32 = FLAT_ATOMIC_FMIN_RTN 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`) 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`)
140 S_DENORM_MODE 0 120 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
141 ... 121 ...
142 122
143 # 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
144 # GCN: FLAT_ATOMIC_FMIN_X2_RTN 124 # GCN: FLAT_ATOMIC_FMIN_X2_RTN
145 # GCN-NEXT: S_NOP 0 125 # GCN-NEXT: S_NOP 2
146 # GCN-NEXT: S_NOP 0
147 # GCN-NEXT: S_NOP 0
148 # GCN-NEXT: S_DENORM_MODE 126 # GCN-NEXT: S_DENORM_MODE
149 --- 127 ---
150 name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode 128 name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode
151 body: | 129 body: |
152 bb.0: 130 bb.0:
153 %2:vreg_64 = FLAT_ATOMIC_FMIN_X2_RTN 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`) 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`)
154 S_DENORM_MODE 0 132 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
155 ... 133 ...
156 134
157 # GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode 135 # GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
158 # GCN: FLAT_ATOMIC_FCMPSWAP_RTN 136 # GCN: FLAT_ATOMIC_FCMPSWAP_RTN
159 # GCN-NEXT: S_NOP 0 137 # GCN-NEXT: S_NOP 2
160 # GCN-NEXT: S_NOP 0
161 # GCN-NEXT: S_NOP 0
162 # GCN-NEXT: S_DENORM_MODE 138 # GCN-NEXT: S_DENORM_MODE
163 --- 139 ---
164 name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode 140 name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
165 body: | 141 body: |
166 bb.0: 142 bb.0:
167 %2:vgpr_32 = FLAT_ATOMIC_FCMPSWAP_RTN 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`) 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`)
168 S_DENORM_MODE 0 144 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
169 ... 145 ...
170 146
171 # GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode 147 # GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode
172 # GCN: GLOBAL_ATOMIC_FCMPSWAP 148 # GCN: GLOBAL_ATOMIC_FCMPSWAP
173 # GCN-NEXT: S_NOP 0 149 # GCN-NEXT: S_NOP 2
174 # GCN-NEXT: S_NOP 0
175 # GCN-NEXT: S_NOP 0
176 # GCN-NEXT: S_DENORM_MODE 150 # GCN-NEXT: S_DENORM_MODE
177 --- 151 ---
178 name: global_atomic_fcmpswap_to_s_denorm_mode 152 name: global_atomic_fcmpswap_to_s_denorm_mode
179 body: | 153 body: |
180 bb.0: 154 bb.0:
181 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 4 on `float addrspace(1)* undef`)
182 S_DENORM_MODE 0 156 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
183 ... 157 ...
184 158
185 # GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode 159 # GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode
186 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2 160 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2
187 # GCN-NEXT: S_NOP 0 161 # GCN-NEXT: S_NOP 2
188 # GCN-NEXT: S_NOP 0
189 # GCN-NEXT: S_NOP 0
190 # GCN-NEXT: S_DENORM_MODE 162 # GCN-NEXT: S_DENORM_MODE
191 --- 163 ---
192 name: global_atomic_fcmpswap_x2_to_s_denorm_mode 164 name: global_atomic_fcmpswap_x2_to_s_denorm_mode
193 body: | 165 body: |
194 bb.0: 166 bb.0:
195 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 4 on `float addrspace(1)* undef`)
196 S_DENORM_MODE 0 168 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
197 ... 169 ...
198 170
199 # GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode 171 # GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode
200 # GCN: GLOBAL_ATOMIC_FMAX 172 # GCN: GLOBAL_ATOMIC_FMAX
201 # GCN-NEXT: S_NOP 0 173 # GCN-NEXT: S_NOP 2
202 # GCN-NEXT: S_NOP 0
203 # GCN-NEXT: S_NOP 0
204 # GCN-NEXT: S_DENORM_MODE 174 # GCN-NEXT: S_DENORM_MODE
205 --- 175 ---
206 name: global_atomic_fmax_to_s_denorm_mode 176 name: global_atomic_fmax_to_s_denorm_mode
207 body: | 177 body: |
208 bb.0: 178 bb.0:
209 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 4 on `float addrspace(1)* undef`)
210 S_DENORM_MODE 0 180 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
211 ... 181 ...
212 182
213 # GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode 183 # GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode
214 # GCN: GLOBAL_ATOMIC_FMAX_X2 184 # GCN: GLOBAL_ATOMIC_FMAX_X2
215 # GCN-NEXT: S_NOP 0 185 # GCN-NEXT: S_NOP 2
216 # GCN-NEXT: S_NOP 0
217 # GCN-NEXT: S_NOP 0
218 # GCN-NEXT: S_DENORM_MODE 186 # GCN-NEXT: S_DENORM_MODE
219 --- 187 ---
220 name: global_atomic_fmax_x2_to_s_denorm_mode 188 name: global_atomic_fmax_x2_to_s_denorm_mode
221 body: | 189 body: |
222 bb.0: 190 bb.0:
223 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 4 on `float addrspace(1)* undef`)
224 S_DENORM_MODE 0 192 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
225 ... 193 ...
226 194
227 # GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode 195 # GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode
228 # GCN: GLOBAL_ATOMIC_FMIN 196 # GCN: GLOBAL_ATOMIC_FMIN
229 # GCN-NEXT: S_NOP 0 197 # GCN-NEXT: S_NOP 2
230 # GCN-NEXT: S_NOP 0
231 # GCN-NEXT: S_NOP 0
232 # GCN-NEXT: S_DENORM_MODE 198 # GCN-NEXT: S_DENORM_MODE
233 --- 199 ---
234 name: global_atomic_fmin_to_s_denorm_mode 200 name: global_atomic_fmin_to_s_denorm_mode
235 body: | 201 body: |
236 bb.0: 202 bb.0:
237 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 4 on `float addrspace(1)* undef`)
238 S_DENORM_MODE 0 204 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
239 ... 205 ...
240 206
241 # GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode 207 # GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode
242 # GCN: GLOBAL_ATOMIC_FMIN_X2 208 # GCN: GLOBAL_ATOMIC_FMIN_X2
243 # GCN-NEXT: S_NOP 0 209 # GCN-NEXT: S_NOP 2
244 # GCN-NEXT: S_NOP 0
245 # GCN-NEXT: S_NOP 0
246 # GCN-NEXT: S_DENORM_MODE 210 # GCN-NEXT: S_DENORM_MODE
247 --- 211 ---
248 name: global_atomic_fmin_x2_to_s_denorm_mode 212 name: global_atomic_fmin_x2_to_s_denorm_mode
249 body: | 213 body: |
250 bb.0: 214 bb.0:
251 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 4 on `float addrspace(1)* undef`)
252 S_DENORM_MODE 0 216 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
253 ... 217 ...
254 218
255 # GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode 219 # GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
256 # GCN: GLOBAL_ATOMIC_FCMPSWAP_RTN 220 # GCN: GLOBAL_ATOMIC_FCMPSWAP_RTN
257 # GCN-NEXT: S_NOP 0 221 # GCN-NEXT: S_NOP 2
258 # GCN-NEXT: S_NOP 0
259 # GCN-NEXT: S_NOP 0
260 # GCN-NEXT: S_DENORM_MODE 222 # GCN-NEXT: S_DENORM_MODE
261 --- 223 ---
262 name: global_atomic_fcmpswap_rtn_to_s_denorm_mode 224 name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
263 body: | 225 body: |
264 bb.0: 226 bb.0:
265 %2:vgpr_32 = GLOBAL_ATOMIC_FCMPSWAP_RTN 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`) 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`)
266 S_DENORM_MODE 0 228 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
267 ... 229 ...
268 230
269 # 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
270 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_RTN 232 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_RTN
271 # GCN-NEXT: S_NOP 0 233 # GCN-NEXT: S_NOP 2
272 # GCN-NEXT: S_NOP 0
273 # GCN-NEXT: S_NOP 0
274 # GCN-NEXT: S_DENORM_MODE 234 # GCN-NEXT: S_DENORM_MODE
275 --- 235 ---
276 name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode 236 name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
277 body: | 237 body: |
278 bb.0: 238 bb.0:
279 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_RTN 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`) 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`)
280 S_DENORM_MODE 0 240 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
281 ... 241 ...
282 242
283 # GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode 243 # GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode
284 # GCN: GLOBAL_ATOMIC_FMAX_RTN 244 # GCN: GLOBAL_ATOMIC_FMAX_RTN
285 # GCN-NEXT: S_NOP 0 245 # GCN-NEXT: S_NOP 2
286 # GCN-NEXT: S_NOP 0
287 # GCN-NEXT: S_NOP 0
288 # GCN-NEXT: S_DENORM_MODE 246 # GCN-NEXT: S_DENORM_MODE
289 --- 247 ---
290 name: global_atomic_fmax_rtn_to_s_denorm_mode 248 name: global_atomic_fmax_rtn_to_s_denorm_mode
291 body: | 249 body: |
292 bb.0: 250 bb.0:
293 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_RTN 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`) 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`)
294 S_DENORM_MODE 0 252 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
295 ... 253 ...
296 254
297 # 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
298 # GCN: GLOBAL_ATOMIC_FMAX_X2_RTN 256 # GCN: GLOBAL_ATOMIC_FMAX_X2_RTN
299 # GCN-NEXT: S_NOP 0 257 # GCN-NEXT: S_NOP 2
300 # GCN-NEXT: S_NOP 0
301 # GCN-NEXT: S_NOP 0
302 # GCN-NEXT: S_DENORM_MODE 258 # GCN-NEXT: S_DENORM_MODE
303 --- 259 ---
304 name: global_atomic_fmax_x2_rtn_to_s_denorm_mode 260 name: global_atomic_fmax_x2_rtn_to_s_denorm_mode
305 body: | 261 body: |
306 bb.0: 262 bb.0:
307 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_RTN 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`) 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`)
308 S_DENORM_MODE 0 264 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
309 ... 265 ...
310 266
311 # GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode 267 # GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode
312 # GCN: GLOBAL_ATOMIC_FMIN_RTN 268 # GCN: GLOBAL_ATOMIC_FMIN_RTN
313 # GCN-NEXT: S_NOP 0 269 # GCN-NEXT: S_NOP 2
314 # GCN-NEXT: S_NOP 0
315 # GCN-NEXT: S_NOP 0
316 # GCN-NEXT: S_DENORM_MODE 270 # GCN-NEXT: S_DENORM_MODE
317 --- 271 ---
318 name: global_atomic_fmin_rtn_to_s_denorm_mode 272 name: global_atomic_fmin_rtn_to_s_denorm_mode
319 body: | 273 body: |
320 bb.0: 274 bb.0:
321 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_RTN 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`) 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`)
322 S_DENORM_MODE 0 276 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
323 ... 277 ...
324 278
325 # 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
326 # GCN: GLOBAL_ATOMIC_FMIN_X2_RTN 280 # GCN: GLOBAL_ATOMIC_FMIN_X2_RTN
327 # GCN-NEXT: S_NOP 0 281 # GCN-NEXT: S_NOP 2
328 # GCN-NEXT: S_NOP 0
329 # GCN-NEXT: S_NOP 0
330 # GCN-NEXT: S_DENORM_MODE 282 # GCN-NEXT: S_DENORM_MODE
331 --- 283 ---
332 name: global_atomic_fmin_x2_rtn_to_s_denorm_mode 284 name: global_atomic_fmin_x2_rtn_to_s_denorm_mode
333 body: | 285 body: |
334 bb.0: 286 bb.0:
335 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_RTN 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`) 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`)
336 S_DENORM_MODE 0 288 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
337 ... 289 ...
338 290
339 # GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode 291 # GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
340 # GCN: GLOBAL_ATOMIC_FCMPSWAP_SADDR 292 # GCN: GLOBAL_ATOMIC_FCMPSWAP_SADDR
341 # GCN-NEXT: S_NOP 0 293 # GCN-NEXT: S_NOP 2
342 # GCN-NEXT: S_NOP 0
343 # GCN-NEXT: S_NOP 0
344 # GCN-NEXT: S_DENORM_MODE 294 # GCN-NEXT: S_DENORM_MODE
345 --- 295 ---
346 name: global_atomic_fcmpswap_saddr_to_s_denorm_mode 296 name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
347 body: | 297 body: |
348 bb.0: 298 bb.0:
349 GLOBAL_ATOMIC_FCMPSWAP_SADDR undef %0:vreg_64, 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 4 on `float addrspace(1)* undef`)
350 S_DENORM_MODE 0 300 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
351 ... 301 ...
352 302
353 # 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
354 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN 304 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN
355 # GCN-NEXT: S_NOP 0 305 # GCN-NEXT: S_NOP 2
356 # GCN-NEXT: S_NOP 0
357 # GCN-NEXT: S_NOP 0
358 # GCN-NEXT: S_DENORM_MODE 306 # GCN-NEXT: S_DENORM_MODE
359 --- 307 ---
360 name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode 308 name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode
361 body: | 309 body: |
362 bb.0: 310 bb.0:
363 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN undef %0:vreg_64, undef %1:vreg_64, undef %3:sgpr_64, 0, 0, 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 4 on `float addrspace(1)* undef`)
364 S_DENORM_MODE 0 312 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
365 ... 313 ...
366 314
367 # 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
368 # GCN: GLOBAL_ATOMIC_FMAX_SADDR_RTN 316 # GCN: GLOBAL_ATOMIC_FMAX_SADDR_RTN
369 # GCN-NEXT: S_NOP 0 317 # GCN-NEXT: S_NOP 2
370 # GCN-NEXT: S_NOP 0
371 # GCN-NEXT: S_NOP 0
372 # GCN-NEXT: S_DENORM_MODE 318 # GCN-NEXT: S_DENORM_MODE
373 --- 319 ---
374 name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode 320 name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode
375 body: | 321 body: |
376 bb.0: 322 bb.0:
377 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_SADDR_RTN undef %0:vreg_64, 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`) 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`)
378 S_DENORM_MODE 0 324 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
379 ... 325 ...
380 326
381 # 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
382 # GCN: GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN 328 # GCN: GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN
383 # GCN-NEXT: S_NOP 0 329 # GCN-NEXT: S_NOP 2
384 # GCN-NEXT: S_NOP 0
385 # GCN-NEXT: S_NOP 0
386 # GCN-NEXT: S_DENORM_MODE 330 # GCN-NEXT: S_DENORM_MODE
387 --- 331 ---
388 name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode 332 name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode
389 body: | 333 body: |
390 bb.0: 334 bb.0:
391 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN undef %0:vreg_64, undef %1:vreg_64, undef %3:sgpr_64, 0, 0, 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 4 on `float addrspace(1)* undef`)
392 S_DENORM_MODE 0 336 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
393 ... 337 ...
394 338
395 # 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
396 # GCN: GLOBAL_ATOMIC_FMIN_SADDR_RTN 340 # GCN: GLOBAL_ATOMIC_FMIN_SADDR_RTN
397 # GCN-NEXT: S_NOP 0 341 # GCN-NEXT: S_NOP 2
398 # GCN-NEXT: S_NOP 0
399 # GCN-NEXT: S_NOP 0
400 # GCN-NEXT: S_DENORM_MODE 342 # GCN-NEXT: S_DENORM_MODE
401 --- 343 ---
402 name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode 344 name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode
403 body: | 345 body: |
404 bb.0: 346 bb.0:
405 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_SADDR_RTN undef %0:vreg_64, 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`) 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`)
406 S_DENORM_MODE 0 348 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
407 ... 349 ...
408 350
409 # 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
410 # GCN: GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN 352 # GCN: GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN
411 # GCN-NEXT: S_NOP 0 353 # GCN-NEXT: S_NOP 2
412 # GCN-NEXT: S_NOP 0
413 # GCN-NEXT: S_NOP 0
414 # GCN-NEXT: S_DENORM_MODE 354 # GCN-NEXT: S_DENORM_MODE
415 --- 355 ---
416 name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode 356 name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode
417 body: | 357 body: |
418 bb.0: 358 bb.0:
419 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN undef %0:vreg_64, undef %1:vreg_64, undef %3:sgpr_64, 0, 0, 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 4 on `float addrspace(1)* undef`)
420 S_DENORM_MODE 0 360 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
421 ... 361 ...
422 362
423 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt 363 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt
424 # GCN: FLAT_ATOMIC_FMIN 364 # GCN: FLAT_ATOMIC_FMIN
425 # GCN-NEXT: S_WAITCNT 365 # GCN-NEXT: S_WAITCNT
428 name: flat_fp_atomic_to_s_denorm_mode_waitcnt 368 name: flat_fp_atomic_to_s_denorm_mode_waitcnt
429 body: | 369 body: |
430 bb.0: 370 bb.0:
431 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 4 on `float addrspace(1)* undef`)
432 S_WAITCNT 0 372 S_WAITCNT 0
433 S_DENORM_MODE 0 373 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
434 ... 374 ...
435 375
436 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu 376 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu
437 # GCN: FLAT_ATOMIC_FMIN 377 # GCN: FLAT_ATOMIC_FMIN
438 # GCN-NEXT: V_ADD_F32_e32 378 # GCN-NEXT: V_ADD_F32_e32
440 --- 380 ---
441 name: flat_fp_atomic_to_s_denorm_mode_valu 381 name: flat_fp_atomic_to_s_denorm_mode_valu
442 body: | 382 body: |
443 bb.0: 383 bb.0:
444 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 4 on `float addrspace(1)* undef`)
445 %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $exec 385 %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $mode, implicit $exec
446 S_DENORM_MODE 0 386 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
447 ... 387 ...