xref: /llvm-project/llvm/test/Transforms/InstSimplify/fptoi-sat.ll (revision b280ee1dd7e9b36ae7aaa3953556e4b7a7f31a29)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -S -passes=instsimplify < %s | FileCheck %s
3
4declare i32 @llvm.fptosi.sat.i32.f64(double)
5declare i32 @llvm.fptoui.sat.i32.f64(double)
6declare i32 @llvm.fptosi.sat.i32.f32(float)
7declare i32 @llvm.fptoui.sat.i32.f32(float)
8
9declare <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double>)
10declare <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double>)
11declare <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float>)
12declare <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float>)
13
14;
15;
16; F64 -> I32
17;
18;
19
20define i32 @fptosi_f64_to_i32_poison() {
21; CHECK-LABEL: @fptosi_f64_to_i32_poison(
22; CHECK-NEXT:    ret i32 0
23;
24  %r = call i32 @llvm.fptosi.sat.i32.f64(double poison)
25  ret i32 %r
26}
27
28define i32 @fptosi_f64_to_i32_undef() {
29; CHECK-LABEL: @fptosi_f64_to_i32_undef(
30; CHECK-NEXT:    ret i32 0
31;
32  %r = call i32 @llvm.fptosi.sat.i32.f64(double undef)
33  ret i32 %r
34}
35
36define i32 @fptosi_f64_to_i32_pos_zero() {
37; CHECK-LABEL: @fptosi_f64_to_i32_pos_zero(
38; CHECK-NEXT:    ret i32 0
39;
40  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0.0)
41  ret i32 %r
42}
43
44define i32 @fptosi_f64_to_i32_neg_zero() {
45; CHECK-LABEL: @fptosi_f64_to_i32_neg_zero(
46; CHECK-NEXT:    ret i32 0
47;
48  %r = call i32 @llvm.fptosi.sat.i32.f64(double -0.0)
49  ret i32 %r
50}
51
52define i32 @fptosi_f64_to_i32_exact() {
53; CHECK-LABEL: @fptosi_f64_to_i32_exact(
54; CHECK-NEXT:    ret i32 42
55;
56  %r = call i32 @llvm.fptosi.sat.i32.f64(double 42.0)
57  ret i32 %r
58}
59
60define i32 @fptosi_f64_to_i32_trunc() {
61; CHECK-LABEL: @fptosi_f64_to_i32_trunc(
62; CHECK-NEXT:    ret i32 42
63;
64  %r = call i32 @llvm.fptosi.sat.i32.f64(double 42.9)
65  ret i32 %r
66}
67
68define i32 @fptosi_f64_to_i32_trunc_neg() {
69; CHECK-LABEL: @fptosi_f64_to_i32_trunc_neg(
70; CHECK-NEXT:    ret i32 -42
71;
72  %r = call i32 @llvm.fptosi.sat.i32.f64(double -42.9)
73  ret i32 %r
74}
75
76define i32 @fptosi_f64_to_i32_max_minus_1() {
77; CHECK-LABEL: @fptosi_f64_to_i32_max_minus_1(
78; CHECK-NEXT:    ret i32 2147483646
79;
80  %r = call i32 @llvm.fptosi.sat.i32.f64(double 2147483646.0)
81  ret i32 %r
82}
83
84define i32 @fptosi_f64_to_i32_max() {
85; CHECK-LABEL: @fptosi_f64_to_i32_max(
86; CHECK-NEXT:    ret i32 2147483647
87;
88  %r = call i32 @llvm.fptosi.sat.i32.f64(double 2147483647.0)
89  ret i32 %r
90}
91
92define i32 @fptosi_f64_to_i32_max_plus_1() {
93; CHECK-LABEL: @fptosi_f64_to_i32_max_plus_1(
94; CHECK-NEXT:    ret i32 2147483647
95;
96  %r = call i32 @llvm.fptosi.sat.i32.f64(double 2147483648.0)
97  ret i32 %r
98}
99
100define i32 @fptosi_f64_to_i32_min_plus_1() {
101; CHECK-LABEL: @fptosi_f64_to_i32_min_plus_1(
102; CHECK-NEXT:    ret i32 -2147483647
103;
104  %r = call i32 @llvm.fptosi.sat.i32.f64(double -2147483647.0)
105  ret i32 %r
106}
107
108define i32 @fptosi_f64_to_i32_min() {
109; CHECK-LABEL: @fptosi_f64_to_i32_min(
110; CHECK-NEXT:    ret i32 -2147483648
111;
112  %r = call i32 @llvm.fptosi.sat.i32.f64(double -2147483648.0)
113  ret i32 %r
114}
115
116define i32 @fptosi_f64_to_i32_min_minus_1() {
117; CHECK-LABEL: @fptosi_f64_to_i32_min_minus_1(
118; CHECK-NEXT:    ret i32 -2147483648
119;
120  %r = call i32 @llvm.fptosi.sat.i32.f64(double -2147483649.0)
121  ret i32 %r
122}
123
124define i32 @fptosi_f64_to_i32_inf() {
125; CHECK-LABEL: @fptosi_f64_to_i32_inf(
126; CHECK-NEXT:    ret i32 2147483647
127;
128  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0x7ff0000000000000)
129  ret i32 %r
130}
131
132define i32 @fptosi_f64_to_i32_neg_inf() {
133; CHECK-LABEL: @fptosi_f64_to_i32_neg_inf(
134; CHECK-NEXT:    ret i32 -2147483648
135;
136  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0xfff0000000000000)
137  ret i32 %r
138}
139
140define i32 @fptosi_f64_to_i32_nan1() {
141; CHECK-LABEL: @fptosi_f64_to_i32_nan1(
142; CHECK-NEXT:    ret i32 0
143;
144  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0x7ff8000000000000)
145  ret i32 %r
146}
147
148define i32 @fptosi_f64_to_i32_nan2() {
149; CHECK-LABEL: @fptosi_f64_to_i32_nan2(
150; CHECK-NEXT:    ret i32 0
151;
152  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0x7ff4000000000000)
153  ret i32 %r
154}
155
156define i32 @fptosi_f64_to_i32_nan3() {
157; CHECK-LABEL: @fptosi_f64_to_i32_nan3(
158; CHECK-NEXT:    ret i32 0
159;
160  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0xfff8000000000000)
161  ret i32 %r
162}
163
164define i32 @fptosi_f64_to_i32_nan4() {
165; CHECK-LABEL: @fptosi_f64_to_i32_nan4(
166; CHECK-NEXT:    ret i32 0
167;
168  %r = call i32 @llvm.fptosi.sat.i32.f64(double 0xfff4000000000000)
169  ret i32 %r
170}
171
172define <2 x i32> @fptosi_f64_to_i32_vec() {
173; CHECK-LABEL: @fptosi_f64_to_i32_vec(
174; CHECK-NEXT:    ret <2 x i32> <i32 42, i32 -42>
175;
176  %r = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> <double 42.9, double -42.9>)
177  ret <2 x i32> %r
178}
179
180;
181;
182; F64 -> U32
183;
184;
185
186define i32 @fptoui_f64_to_i32_poison() {
187; CHECK-LABEL: @fptoui_f64_to_i32_poison(
188; CHECK-NEXT:    ret i32 0
189;
190  %r = call i32 @llvm.fptoui.sat.i32.f64(double poison)
191  ret i32 %r
192}
193
194define i32 @fptoui_f64_to_i32_undef() {
195; CHECK-LABEL: @fptoui_f64_to_i32_undef(
196; CHECK-NEXT:    ret i32 0
197;
198  %r = call i32 @llvm.fptoui.sat.i32.f64(double undef)
199  ret i32 %r
200}
201
202define i32 @fptoui_f64_to_i32_pos_zero() {
203; CHECK-LABEL: @fptoui_f64_to_i32_pos_zero(
204; CHECK-NEXT:    ret i32 0
205;
206  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0.0)
207  ret i32 %r
208}
209
210define i32 @fptoui_f64_to_i32_neg_zero() {
211; CHECK-LABEL: @fptoui_f64_to_i32_neg_zero(
212; CHECK-NEXT:    ret i32 0
213;
214  %r = call i32 @llvm.fptoui.sat.i32.f64(double -0.0)
215  ret i32 %r
216}
217
218define i32 @fptoui_f64_to_i32_exact() {
219; CHECK-LABEL: @fptoui_f64_to_i32_exact(
220; CHECK-NEXT:    ret i32 42
221;
222  %r = call i32 @llvm.fptoui.sat.i32.f64(double 42.0)
223  ret i32 %r
224}
225
226define i32 @fptoui_f64_to_i32_trunc() {
227; CHECK-LABEL: @fptoui_f64_to_i32_trunc(
228; CHECK-NEXT:    ret i32 42
229;
230  %r = call i32 @llvm.fptoui.sat.i32.f64(double 42.9)
231  ret i32 %r
232}
233
234define i32 @fptoui_f64_to_i32_trunc_neg() {
235; CHECK-LABEL: @fptoui_f64_to_i32_trunc_neg(
236; CHECK-NEXT:    ret i32 0
237;
238  %r = call i32 @llvm.fptoui.sat.i32.f64(double -42.9)
239  ret i32 %r
240}
241
242define i32 @fptoui_f64_to_i32_max_minus_1() {
243; CHECK-LABEL: @fptoui_f64_to_i32_max_minus_1(
244; CHECK-NEXT:    ret i32 -2
245;
246  %r = call i32 @llvm.fptoui.sat.i32.f64(double 4294967294.0)
247  ret i32 %r
248}
249
250define i32 @fptoui_f64_to_i32_max() {
251; CHECK-LABEL: @fptoui_f64_to_i32_max(
252; CHECK-NEXT:    ret i32 -1
253;
254  %r = call i32 @llvm.fptoui.sat.i32.f64(double 4294967295.0)
255  ret i32 %r
256}
257
258define i32 @fptoui_f64_to_i32_max_plus_1() {
259; CHECK-LABEL: @fptoui_f64_to_i32_max_plus_1(
260; CHECK-NEXT:    ret i32 -1
261;
262  %r = call i32 @llvm.fptoui.sat.i32.f64(double 4294967296.0)
263  ret i32 %r
264}
265
266define i32 @fptoui_f64_to_i32_inf() {
267; CHECK-LABEL: @fptoui_f64_to_i32_inf(
268; CHECK-NEXT:    ret i32 -1
269;
270  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0x7ff0000000000000)
271  ret i32 %r
272}
273
274define i32 @fptoui_f64_to_i32_neg_inf() {
275; CHECK-LABEL: @fptoui_f64_to_i32_neg_inf(
276; CHECK-NEXT:    ret i32 0
277;
278  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0xfff0000000000000)
279  ret i32 %r
280}
281
282define i32 @fptoui_f64_to_i32_nan1() {
283; CHECK-LABEL: @fptoui_f64_to_i32_nan1(
284; CHECK-NEXT:    ret i32 0
285;
286  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0x7ff8000000000000)
287  ret i32 %r
288}
289
290define i32 @fptoui_f64_to_i32_nan2() {
291; CHECK-LABEL: @fptoui_f64_to_i32_nan2(
292; CHECK-NEXT:    ret i32 0
293;
294  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0x7ff4000000000000)
295  ret i32 %r
296}
297
298define i32 @fptoui_f64_to_i32_nan3() {
299; CHECK-LABEL: @fptoui_f64_to_i32_nan3(
300; CHECK-NEXT:    ret i32 0
301;
302  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0xfff8000000000000)
303  ret i32 %r
304}
305
306define i32 @fptoui_f64_to_i32_nan4() {
307; CHECK-LABEL: @fptoui_f64_to_i32_nan4(
308; CHECK-NEXT:    ret i32 0
309;
310  %r = call i32 @llvm.fptoui.sat.i32.f64(double 0xfff4000000000000)
311  ret i32 %r
312}
313
314define <2 x i32> @fptoui_f64_to_i32_vec() {
315; CHECK-LABEL: @fptoui_f64_to_i32_vec(
316; CHECK-NEXT:    ret <2 x i32> <i32 42, i32 0>
317;
318  %r = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> <double 42.9, double -42.9>)
319  ret <2 x i32> %r
320}
321
322;
323;
324; F32 -> I32
325;
326;
327
328define i32 @fptosi_f32_to_i32_poison() {
329; CHECK-LABEL: @fptosi_f32_to_i32_poison(
330; CHECK-NEXT:    ret i32 0
331;
332  %r = call i32 @llvm.fptosi.sat.i32.f32(float poison)
333  ret i32 %r
334}
335
336define i32 @fptosi_f32_to_i32_undef() {
337; CHECK-LABEL: @fptosi_f32_to_i32_undef(
338; CHECK-NEXT:    ret i32 0
339;
340  %r = call i32 @llvm.fptosi.sat.i32.f32(float undef)
341  ret i32 %r
342}
343
344define i32 @fptosi_f32_to_i32_pos_zero() {
345; CHECK-LABEL: @fptosi_f32_to_i32_pos_zero(
346; CHECK-NEXT:    ret i32 0
347;
348  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0.0)
349  ret i32 %r
350}
351
352define i32 @fptosi_f32_to_i32_neg_zero() {
353; CHECK-LABEL: @fptosi_f32_to_i32_neg_zero(
354; CHECK-NEXT:    ret i32 0
355;
356  %r = call i32 @llvm.fptosi.sat.i32.f32(float -0.0)
357  ret i32 %r
358}
359
360define i32 @fptosi_f32_to_i32_exact() {
361; CHECK-LABEL: @fptosi_f32_to_i32_exact(
362; CHECK-NEXT:    ret i32 42
363;
364  %r = call i32 @llvm.fptosi.sat.i32.f32(float 42.0)
365  ret i32 %r
366}
367
368define i32 @fptosi_f32_to_i32_trunc() {
369; CHECK-LABEL: @fptosi_f32_to_i32_trunc(
370; CHECK-NEXT:    ret i32 42
371;
372  %r = call i32 @llvm.fptosi.sat.i32.f32(float 42.5)
373  ret i32 %r
374}
375
376define i32 @fptosi_f32_to_i32_trunc_neg() {
377; CHECK-LABEL: @fptosi_f32_to_i32_trunc_neg(
378; CHECK-NEXT:    ret i32 -42
379;
380  %r = call i32 @llvm.fptosi.sat.i32.f32(float -42.5)
381  ret i32 %r
382}
383
384define i32 @fptosi_f32_to_i32_below_max() {
385; CHECK-LABEL: @fptosi_f32_to_i32_below_max(
386; CHECK-NEXT:    ret i32 2147483520
387;
388  %r = call i32 @llvm.fptosi.sat.i32.f32(float 2147483520.0)
389  ret i32 %r
390}
391
392define i32 @fptosi_f32_to_i32_above_max() {
393; CHECK-LABEL: @fptosi_f32_to_i32_above_max(
394; CHECK-NEXT:    ret i32 2147483647
395;
396  %r = call i32 @llvm.fptosi.sat.i32.f32(float 2147483648.0)
397  ret i32 %r
398}
399
400define i32 @fptosi_f32_to_i32_above_min() {
401; CHECK-LABEL: @fptosi_f32_to_i32_above_min(
402; CHECK-NEXT:    ret i32 -2147483520
403;
404  %r = call i32 @llvm.fptosi.sat.i32.f32(float -2147483520.0)
405  ret i32 %r
406}
407
408define i32 @fptosi_f32_to_i32_min() {
409; CHECK-LABEL: @fptosi_f32_to_i32_min(
410; CHECK-NEXT:    ret i32 -2147483648
411;
412  %r = call i32 @llvm.fptosi.sat.i32.f32(float -2147483648.0)
413  ret i32 %r
414}
415
416define i32 @fptosi_f32_to_i32_below_min() {
417; CHECK-LABEL: @fptosi_f32_to_i32_below_min(
418; CHECK-NEXT:    ret i32 -2147483648
419;
420  %r = call i32 @llvm.fptosi.sat.i32.f32(float -2147483904.0)
421  ret i32 %r
422}
423
424define i32 @fptosi_f32_to_i32_inf() {
425; CHECK-LABEL: @fptosi_f32_to_i32_inf(
426; CHECK-NEXT:    ret i32 2147483647
427;
428  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0x7ff0000000000000)
429  ret i32 %r
430}
431
432define i32 @fptosi_f32_to_i32_neg_inf() {
433; CHECK-LABEL: @fptosi_f32_to_i32_neg_inf(
434; CHECK-NEXT:    ret i32 -2147483648
435;
436  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0xfff0000000000000)
437  ret i32 %r
438}
439
440define i32 @fptosi_f32_to_i32_nan1() {
441; CHECK-LABEL: @fptosi_f32_to_i32_nan1(
442; CHECK-NEXT:    ret i32 0
443;
444  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0x7ff8000000000000)
445  ret i32 %r
446}
447
448define i32 @fptosi_f32_to_i32_nan2() {
449; CHECK-LABEL: @fptosi_f32_to_i32_nan2(
450; CHECK-NEXT:    ret i32 0
451;
452  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0x7ff4000000000000)
453  ret i32 %r
454}
455
456define i32 @fptosi_f32_to_i32_nan3() {
457; CHECK-LABEL: @fptosi_f32_to_i32_nan3(
458; CHECK-NEXT:    ret i32 0
459;
460  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0xfff8000000000000)
461  ret i32 %r
462}
463
464define i32 @fptosi_f32_to_i32_nan4() {
465; CHECK-LABEL: @fptosi_f32_to_i32_nan4(
466; CHECK-NEXT:    ret i32 0
467;
468  %r = call i32 @llvm.fptosi.sat.i32.f32(float 0xfff4000000000000)
469  ret i32 %r
470}
471
472define <2 x i32> @fptosi_f32_to_i32_vec() {
473; CHECK-LABEL: @fptosi_f32_to_i32_vec(
474; CHECK-NEXT:    ret <2 x i32> <i32 42, i32 -42>
475;
476  %r = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> <float 42.5, float -42.5>)
477  ret <2 x i32> %r
478}
479
480;
481;
482; F32 -> U32
483;
484;
485
486define i32 @fptoui_f32_to_i32_poison() {
487; CHECK-LABEL: @fptoui_f32_to_i32_poison(
488; CHECK-NEXT:    ret i32 0
489;
490  %r = call i32 @llvm.fptoui.sat.i32.f32(float poison)
491  ret i32 %r
492}
493
494define i32 @fptoui_f32_to_i32_undef() {
495; CHECK-LABEL: @fptoui_f32_to_i32_undef(
496; CHECK-NEXT:    ret i32 0
497;
498  %r = call i32 @llvm.fptoui.sat.i32.f32(float undef)
499  ret i32 %r
500}
501
502define i32 @fptoui_f32_to_i32_pos_zero() {
503; CHECK-LABEL: @fptoui_f32_to_i32_pos_zero(
504; CHECK-NEXT:    ret i32 0
505;
506  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0.0)
507  ret i32 %r
508}
509
510define i32 @fptoui_f32_to_i32_neg_zero() {
511; CHECK-LABEL: @fptoui_f32_to_i32_neg_zero(
512; CHECK-NEXT:    ret i32 0
513;
514  %r = call i32 @llvm.fptoui.sat.i32.f32(float -0.0)
515  ret i32 %r
516}
517
518define i32 @fptoui_f32_to_i32_exact() {
519; CHECK-LABEL: @fptoui_f32_to_i32_exact(
520; CHECK-NEXT:    ret i32 42
521;
522  %r = call i32 @llvm.fptoui.sat.i32.f32(float 42.0)
523  ret i32 %r
524}
525
526define i32 @fptoui_f32_to_i32_trunc() {
527; CHECK-LABEL: @fptoui_f32_to_i32_trunc(
528; CHECK-NEXT:    ret i32 42
529;
530  %r = call i32 @llvm.fptoui.sat.i32.f32(float 42.5)
531  ret i32 %r
532}
533
534define i32 @fptoui_f32_to_i32_trunc_neg() {
535; CHECK-LABEL: @fptoui_f32_to_i32_trunc_neg(
536; CHECK-NEXT:    ret i32 0
537;
538  %r = call i32 @llvm.fptoui.sat.i32.f32(float -42.5)
539  ret i32 %r
540}
541
542define i32 @fptoui_f32_to_i32_below_max() {
543; CHECK-LABEL: @fptoui_f32_to_i32_below_max(
544; CHECK-NEXT:    ret i32 -256
545;
546  %r = call i32 @llvm.fptoui.sat.i32.f32(float 4294967040.0)
547  ret i32 %r
548}
549
550define i32 @fptoui_f32_to_i32_above_max() {
551; CHECK-LABEL: @fptoui_f32_to_i32_above_max(
552; CHECK-NEXT:    ret i32 -1
553;
554  %r = call i32 @llvm.fptoui.sat.i32.f32(float 4294967296.0)
555  ret i32 %r
556}
557
558define i32 @fptoui_f32_to_i32_inf() {
559; CHECK-LABEL: @fptoui_f32_to_i32_inf(
560; CHECK-NEXT:    ret i32 -1
561;
562  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0x7ff0000000000000)
563  ret i32 %r
564}
565
566define i32 @fptoui_f32_to_i32_neg_inf() {
567; CHECK-LABEL: @fptoui_f32_to_i32_neg_inf(
568; CHECK-NEXT:    ret i32 0
569;
570  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0xfff0000000000000)
571  ret i32 %r
572}
573
574define i32 @fptoui_f32_to_i32_nan1() {
575; CHECK-LABEL: @fptoui_f32_to_i32_nan1(
576; CHECK-NEXT:    ret i32 0
577;
578  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0x7ff8000000000000)
579  ret i32 %r
580}
581
582define i32 @fptoui_f32_to_i32_nan2() {
583; CHECK-LABEL: @fptoui_f32_to_i32_nan2(
584; CHECK-NEXT:    ret i32 0
585;
586  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0x7ff4000000000000)
587  ret i32 %r
588}
589
590define i32 @fptoui_f32_to_i32_nan3() {
591; CHECK-LABEL: @fptoui_f32_to_i32_nan3(
592; CHECK-NEXT:    ret i32 0
593;
594  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0xfff8000000000000)
595  ret i32 %r
596}
597
598define i32 @fptoui_f32_to_i32_nan4() {
599; CHECK-LABEL: @fptoui_f32_to_i32_nan4(
600; CHECK-NEXT:    ret i32 0
601;
602  %r = call i32 @llvm.fptoui.sat.i32.f32(float 0xfff4000000000000)
603  ret i32 %r
604}
605
606define <2 x i32> @fptoui_f32_to_i32_vec() {
607; CHECK-LABEL: @fptoui_f32_to_i32_vec(
608; CHECK-NEXT:    ret <2 x i32> <i32 42, i32 0>
609;
610  %r = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> <float 42.5, float -42.5>)
611  ret <2 x i32> %r
612}
613