Mercurial > hg > CbC > CbC_llvm
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 ... |