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