1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2 ; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT
4 define float @ret_fmul_ieee_nonan__nonan(float nofpclass(nan) %arg0, float nofpclass(nan) %arg1) #0 {
5 ; CHECK-LABEL: define float @ret_fmul_ieee_nonan__nonan
6 ; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR0:[0-9]+]] {
7 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
8 ; CHECK-NEXT: ret float [[FMUL]]
10 %fmul = fmul float %arg0, %arg1
14 define float @ret_fmul_ieee_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #0 {
15 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_nozero__nonan_nozero
16 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR0]] {
17 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
18 ; CHECK-NEXT: ret float [[FMUL]]
20 %fmul = fmul float %arg0, %arg1
24 define float @ret_fmul_daz_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #1 {
25 ; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero__nonan_nozero
26 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR1:[0-9]+]] {
27 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
28 ; CHECK-NEXT: ret float [[FMUL]]
30 %fmul = fmul float %arg0, %arg1
34 define float @ret_fmul_dapz_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #2 {
35 ; CHECK-LABEL: define float @ret_fmul_dapz_nonan_nozero__nonan_nozero
36 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR2:[0-9]+]] {
37 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
38 ; CHECK-NEXT: ret float [[FMUL]]
40 %fmul = fmul float %arg0, %arg1
44 define float @ret_fmul_dynamic_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #3 {
45 ; CHECK-LABEL: define float @ret_fmul_dynamic_nonan_nozero__nonan_nozero
46 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR3:[0-9]+]] {
47 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
48 ; CHECK-NEXT: ret float [[FMUL]]
50 %fmul = fmul float %arg0, %arg1
54 define float @ret_fmul_ieee_nonan_noinf__nonan_noinf(float nofpclass(nan inf) %arg0, float nofpclass(nan inf) %arg1) #0 {
55 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_noinf__nonan_noinf
56 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {
57 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
58 ; CHECK-NEXT: ret float [[FMUL]]
60 %fmul = fmul float %arg0, %arg1
64 define float @ret_fmul_ieee_nonan_nozero__nonan_noinf(float nofpclass(nan zero) %arg0, float nofpclass(nan inf) %arg1) #0 {
65 ; CHECK-LABEL: define float @ret_fmul_ieee_nonan_nozero__nonan_noinf
66 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {
67 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
68 ; CHECK-NEXT: ret float [[FMUL]]
70 %fmul = fmul float %arg0, %arg1
74 define float @ret_fmul_ieee_nonan_noinf__nonan_nozero(float nofpclass(nan inf) %arg0, float nofpclass(nan zero) %arg1) #0 {
75 ; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noinf__nonan_nozero
76 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR0]] {
77 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
78 ; CHECK-NEXT: ret float [[FMUL]]
80 %fmul = fmul float %arg0, %arg1
84 define float @ret_fmul_ieee_nonan_noinf__nonan_noposzero(float nofpclass(nan inf) %arg0, float nofpclass(nan pzero) %arg1) #0 {
85 ; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noinf__nonan_noposzero
86 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan pzero) [[ARG1:%.*]]) #[[ATTR0]] {
87 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
88 ; CHECK-NEXT: ret float [[FMUL]]
90 %fmul = fmul float %arg0, %arg1
94 define float @ret_fmul_ieee_nonan_noposzero__nonan_noinf(float nofpclass(nan pzero) %arg0, float nofpclass(nan inf) %arg1) #0 {
95 ; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noposzero__nonan_noinf
96 ; CHECK-SAME: (float nofpclass(nan pzero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {
97 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
98 ; CHECK-NEXT: ret float [[FMUL]]
100 %fmul = fmul float %arg0, %arg1
104 define float @ret_fmul_ieee_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #0 {
105 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_nozero_nosub__nonan_nozero_nosub
106 ; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR0]] {
107 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
108 ; CHECK-NEXT: ret float [[FMUL]]
110 %fmul = fmul float %arg0, %arg1
114 ; Denormal mode doesn't matter because sources are nofpclass(sub)
115 define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #1 {
116 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero_nosub
117 ; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR1]] {
118 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
119 ; CHECK-NEXT: ret float [[FMUL]]
121 %fmul = fmul float %arg0, %arg1
125 define float @ret_fmul_dapz_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #2 {
126 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_dapz_nonan_nozero_nosub__nonan_nozero_nosub
127 ; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR2]] {
128 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
129 ; CHECK-NEXT: ret float [[FMUL]]
131 %fmul = fmul float %arg0, %arg1
135 define float @ret_fmul_dynamic_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #3 {
136 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_dynamic_nonan_nozero_nosub__nonan_nozero_nosub
137 ; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR3]] {
138 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
139 ; CHECK-NEXT: ret float [[FMUL]]
141 %fmul = fmul float %arg0, %arg1
145 ; Missing no-subnormal on lhs
146 define float @ret_fmul_daz_nonan_nozero__nonan_nozero_nosub(float nofpclass(nan zero) %arg0, float nofpclass(nan zero sub) %arg1) #1 {
147 ; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero__nonan_nozero_nosub
148 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR1]] {
149 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
150 ; CHECK-NEXT: ret float [[FMUL]]
152 %fmul = fmul float %arg0, %arg1
156 ; Missing no-subnormal on lhs
157 define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero) %arg1) #1 {
158 ; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero
159 ; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR1]] {
160 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
161 ; CHECK-NEXT: ret float [[FMUL]]
163 %fmul = fmul float %arg0, %arg1
167 define float @ret_fmul_square(float %arg) #0 {
168 ; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_fmul_square
169 ; CHECK-SAME: (float [[ARG:%.*]]) #[[ATTR0]] {
170 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]
171 ; CHECK-NEXT: ret float [[FMUL]]
173 %fmul = fmul float %arg, %arg
177 define float @ret_fmul_square_nnan(float nofpclass(nan) %arg) #0 {
178 ; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_fmul_square_nnan
179 ; CHECK-SAME: (float nofpclass(nan) [[ARG:%.*]]) #[[ATTR0]] {
180 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]
181 ; CHECK-NEXT: ret float [[FMUL]]
183 %fmul = fmul float %arg, %arg
187 define float @ret_fmul_square_nnan_nzero(float nofpclass(nan zero) %arg) #0 {
188 ; CHECK-LABEL: define nofpclass(nan ninf nzero nsub nnorm) float @ret_fmul_square_nnan_nzero
189 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG:%.*]]) #[[ATTR0]] {
190 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]
191 ; CHECK-NEXT: ret float [[FMUL]]
193 %fmul = fmul float %arg, %arg
197 define float @ret_fmul_ieee_inf(float %arg) {
198 ; CHECK-LABEL: define float @ret_fmul_ieee_inf
199 ; CHECK-SAME: (float [[ARG:%.*]]) #[[ATTR4:[0-9]+]] {
200 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], 0x7FF0000000000000
201 ; CHECK-NEXT: ret float [[FMUL]]
203 %fmul = fmul float %arg, 0x7FF0000000000000
207 define float @ret_fmul_ieee_any__noinf(float %arg0, float nofpclass(inf) %arg1) {
208 ; CHECK-LABEL: define float @ret_fmul_ieee_any__noinf
209 ; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR4]] {
210 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
211 ; CHECK-NEXT: ret float [[FMUL]]
213 %fmul = fmul float %arg0, %arg1
217 define float @ret_fmul_ieee_noinf__any(float nofpclass(inf) %arg0, float %arg1) {
218 ; CHECK-LABEL: define float @ret_fmul_ieee_noinf__any
219 ; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {
220 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
221 ; CHECK-NEXT: ret float [[FMUL]]
223 %fmul = fmul float %arg0, %arg1
227 define float @ret_fmul_ieee_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) {
228 ; CHECK-LABEL: define float @ret_fmul_ieee_noinf__noinf
229 ; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR4]] {
230 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
231 ; CHECK-NEXT: ret float [[FMUL]]
233 %fmul = fmul float %arg0, %arg1
237 define float @ret_fmul_ieee_any__noinf_nonan(float %arg0, float nofpclass(inf nan) %arg1) {
238 ; CHECK-LABEL: define float @ret_fmul_ieee_any__noinf_nonan
239 ; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {
240 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
241 ; CHECK-NEXT: ret float [[FMUL]]
243 %fmul = fmul float %arg0, %arg1
247 define float @ret_fmul_ieee_noinf_nonan__any(float nofpclass(inf nan) %arg0, float %arg1) {
248 ; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__any
249 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {
250 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
251 ; CHECK-NEXT: ret float [[FMUL]]
253 %fmul = fmul float %arg0, %arg1
257 define float @ret_fmul_ieee_noinf_nonan__noinf_noann(float nofpclass(inf nan) %arg0, float nofpclass(inf nan) %arg1) {
258 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_noinf_nonan__noinf_noann
259 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {
260 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
261 ; CHECK-NEXT: ret float [[FMUL]]
263 %fmul = fmul float %arg0, %arg1
267 define float @ret_fmul_ieee_nozero__noinf_nonan(float nofpclass(zero) %arg0, float nofpclass(inf nan) %arg1) {
268 ; CHECK-LABEL: define float @ret_fmul_ieee_nozero__noinf_nonan
269 ; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {
270 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
271 ; CHECK-NEXT: ret float [[FMUL]]
273 %fmul = fmul float %arg0, %arg1
277 define float @ret_fmul_ieee_noinf_nonan__nozero(float nofpclass(inf nan) %arg0, float nofpclass(zero) %arg1) {
278 ; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__nozero
279 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR4]] {
280 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
281 ; CHECK-NEXT: ret float [[FMUL]]
283 %fmul = fmul float %arg0, %arg1
287 define float @ret_fmul_ieee_nozero_nonan__noinf_nonan(float nofpclass(zero nan) %arg0, float nofpclass(inf nan) %arg1) {
288 ; CHECK-LABEL: define float @ret_fmul_ieee_nozero_nonan__noinf_nonan
289 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {
290 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
291 ; CHECK-NEXT: ret float [[FMUL]]
293 %fmul = fmul float %arg0, %arg1
297 define float @ret_fmul_ieee_noinf_nonan__nozero_nonan(float nofpclass(inf nan) %arg0, float nofpclass(zero nan) %arg1) {
298 ; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__nozero_nonan
299 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR4]] {
300 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
301 ; CHECK-NEXT: ret float [[FMUL]]
303 %fmul = fmul float %arg0, %arg1
307 define float @ret_fmul_ieee_nozero_nonan_noinf__noinf_nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(inf nan) %arg1) {
308 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__noinf_nonan
309 ; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {
310 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
311 ; CHECK-NEXT: ret float [[FMUL]]
313 %fmul = fmul float %arg0, %arg1
317 define float @ret_fmul_ieee_noinf_nonan__nozero_nonan_noinf(float nofpclass(inf nan) %arg0, float nofpclass(zero nan inf) %arg1) {
318 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_noinf_nonan__nozero_nonan_noinf
319 ; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {
320 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
321 ; CHECK-NEXT: ret float [[FMUL]]
323 %fmul = fmul float %arg0, %arg1
327 define float @ret_fmul_ieee_nozero_nonan_noinf__nozero_nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(zero nan) %arg1) {
328 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__nozero_nonan
329 ; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR4]] {
330 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
331 ; CHECK-NEXT: ret float [[FMUL]]
333 %fmul = fmul float %arg0, %arg1
337 define float @ret_fmul_ieee_nozero_nonan__nozero_nonan_noinf(float nofpclass(zero nan) %arg0, float nofpclass(zero nan inf) %arg1) {
338 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan__nozero_nonan_noinf
339 ; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {
340 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
341 ; CHECK-NEXT: ret float [[FMUL]]
343 %fmul = fmul float %arg0, %arg1
347 define float @ret_fmul_ieee_nozero_nonan_noinf__nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(nan) %arg1) {
348 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__nonan
349 ; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR4]] {
350 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
351 ; CHECK-NEXT: ret float [[FMUL]]
353 %fmul = fmul float %arg0, %arg1
357 define float @ret_fmul_ieee_nonan__nozero_nonan_noinf(float nofpclass(nan) %arg0, float nofpclass(zero nan inf) %arg1) {
358 ; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan__nozero_nonan_noinf
359 ; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {
360 ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]
361 ; CHECK-NEXT: ret float [[FMUL]]
363 %fmul = fmul float %arg0, %arg1
367 attributes #0 = { "denormal-fp-math"="ieee,ieee" }
368 attributes #1 = { "denormal-fp-math"="ieee,preserve-sign" }
369 attributes #2 = { "denormal-fp-math"="ieee,positive-zero" }
370 attributes #3 = { "denormal-fp-math"="ieee,dynamic" }
371 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: