1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes=inline < %s | FileCheck %s
3 ; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes='cgscc(inline)' < %s | FileCheck %s
5 define i32 @func_default() {
6 ; CHECK-LABEL: @func_default(
7 ; CHECK-NEXT: ret i32 0
12 define i32 @func_ieee_ieee() #0 {
13 ; CHECK-LABEL: @func_ieee_ieee(
14 ; CHECK-NEXT: ret i32 1
19 define i32 @func_psz_psz() #1 {
20 ; CHECK-LABEL: @func_psz_psz(
21 ; CHECK-NEXT: ret i32 2
26 define i32 @func_psz_ieee() #2 {
27 ; CHECK-LABEL: @func_psz_ieee(
28 ; CHECK-NEXT: ret i32 3
33 define i32 @func_ieee_psz() #3 {
34 ; CHECK-LABEL: @func_ieee_psz(
35 ; CHECK-NEXT: ret i32 4
40 define i32 @func_dynamic_dynamic() #4 {
41 ; CHECK-LABEL: @func_dynamic_dynamic(
42 ; CHECK-NEXT: ret i32 5
47 define i32 @func_dynamic_ieee() #5 {
48 ; CHECK-LABEL: @func_dynamic_ieee(
49 ; CHECK-NEXT: ret i32 6
54 define i32 @func_ieee_dynamic() #6 {
55 ; CHECK-LABEL: @func_ieee_dynamic(
56 ; CHECK-NEXT: ret i32 7
61 define i32 @func_psz_dynamic() #7 {
62 ; CHECK-LABEL: @func_psz_dynamic(
63 ; CHECK-NEXT: ret i32 8
68 define i32 @func_dynamic_psz() #8 {
69 ; CHECK-LABEL: @func_dynamic_psz(
70 ; CHECK-NEXT: ret i32 9
75 define i32 @call_default_from_psz_psz() #1 {
76 ; CHECK-LABEL: @call_default_from_psz_psz(
77 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_default()
78 ; CHECK-NEXT: ret i32 [[CALL]]
80 %call = call i32 @func_default()
84 define i32 @call_ieee_ieee_from_ieee_ieee() #0 {
85 ; CHECK-LABEL: @call_ieee_ieee_from_ieee_ieee(
86 ; CHECK-NEXT: ret i32 1
88 %call = call i32 @func_ieee_ieee()
92 define i32 @call_ieee_ieee_from_psz_psz() #1 {
93 ; CHECK-LABEL: @call_ieee_ieee_from_psz_psz(
94 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
95 ; CHECK-NEXT: ret i32 [[CALL]]
97 %call = call i32 @func_ieee_ieee()
101 define i32 @call_psz_psz_from_ieee_ieee() #0 {
102 ; CHECK-LABEL: @call_psz_psz_from_ieee_ieee(
103 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
104 ; CHECK-NEXT: ret i32 [[CALL]]
106 %call = call i32 @func_psz_psz()
110 define i32 @call_psz_psz_from_psz_psz() #1 {
111 ; CHECK-LABEL: @call_psz_psz_from_psz_psz(
112 ; CHECK-NEXT: ret i32 2
114 %call = call i32 @func_psz_psz()
118 define i32 @call_psz_ieee_from_psz_psz() #1 {
119 ; CHECK-LABEL: @call_psz_ieee_from_psz_psz(
120 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
121 ; CHECK-NEXT: ret i32 [[CALL]]
123 %call = call i32 @func_psz_ieee()
127 define i32 @call_ieee_psz_from_psz_psz() #1 {
128 ; CHECK-LABEL: @call_ieee_psz_from_psz_psz(
129 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
130 ; CHECK-NEXT: ret i32 [[CALL]]
132 %call = call i32 @func_ieee_psz()
136 define i32 @call_psz_ieee_from_ieee_ieee() #0 {
137 ; CHECK-LABEL: @call_psz_ieee_from_ieee_ieee(
138 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
139 ; CHECK-NEXT: ret i32 [[CALL]]
141 %call = call i32 @func_psz_ieee()
145 define i32 @call_ieee_psz_from_ieee_ieee() #0 {
146 ; CHECK-LABEL: @call_ieee_psz_from_ieee_ieee(
147 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
148 ; CHECK-NEXT: ret i32 [[CALL]]
150 %call = call i32 @func_ieee_psz()
154 define i32 @call_ieee_ieee_from_psz_ieee() #2 {
155 ; CHECK-LABEL: @call_ieee_ieee_from_psz_ieee(
156 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
157 ; CHECK-NEXT: ret i32 [[CALL]]
159 %call = call i32 @func_ieee_ieee()
163 define i32 @call_psz_ieee_from_psz_ieee() #2 {
164 ; CHECK-LABEL: @call_psz_ieee_from_psz_ieee(
165 ; CHECK-NEXT: ret i32 3
167 %call = call i32 @func_psz_ieee()
171 define i32 @call_ieee_psz_from_psz_ieee() #2 {
172 ; CHECK-LABEL: @call_ieee_psz_from_psz_ieee(
173 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
174 ; CHECK-NEXT: ret i32 [[CALL]]
176 %call = call i32 @func_ieee_psz()
180 define i32 @call_psz_psz_from_psz_ieee() #2 {
181 ; CHECK-LABEL: @call_psz_psz_from_psz_ieee(
182 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
183 ; CHECK-NEXT: ret i32 [[CALL]]
185 %call = call i32 @func_psz_psz()
189 define i32 @call_ieee_ieee_from_ieee_psz() #3 {
190 ; CHECK-LABEL: @call_ieee_ieee_from_ieee_psz(
191 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
192 ; CHECK-NEXT: ret i32 [[CALL]]
194 %call = call i32 @func_ieee_ieee()
198 define i32 @call_psz_ieee_from_ieee_psz() #3 {
199 ; CHECK-LABEL: @call_psz_ieee_from_ieee_psz(
200 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
201 ; CHECK-NEXT: ret i32 [[CALL]]
203 %call = call i32 @func_psz_ieee()
207 define i32 @call_ieee_psz_from_ieee_psz() #3 {
208 ; CHECK-LABEL: @call_ieee_psz_from_ieee_psz(
209 ; CHECK-NEXT: ret i32 4
211 %call = call i32 @func_ieee_psz()
215 define i32 @call_psz_psz_from_ieee_psz() #3 {
216 ; CHECK-LABEL: @call_psz_psz_from_ieee_psz(
217 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
218 ; CHECK-NEXT: ret i32 [[CALL]]
220 %call = call i32 @func_psz_psz()
224 define i32 @call_dynamic_dynamic_from_ieee_ieee() #0 {
225 ; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_ieee(
226 ; CHECK-NEXT: ret i32 5
228 %call = call i32 @func_dynamic_dynamic()
232 define i32 @call_dynamic_ieee_from_ieee_ieee() #0 {
233 ; CHECK-LABEL: @call_dynamic_ieee_from_ieee_ieee(
234 ; CHECK-NEXT: ret i32 6
236 %call = call i32 @func_dynamic_ieee()
240 define i32 @call_ieee_dynamic_from_ieee_ieee() #0 {
241 ; CHECK-LABEL: @call_ieee_dynamic_from_ieee_ieee(
242 ; CHECK-NEXT: ret i32 7
244 %call = call i32 @func_ieee_dynamic()
248 define i32 @call_dynamic_psz_from_ieee_ieee() #0 {
249 ; CHECK-LABEL: @call_dynamic_psz_from_ieee_ieee(
250 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
251 ; CHECK-NEXT: ret i32 [[CALL]]
253 %call = call i32 @func_dynamic_psz()
257 define i32 @call_psz_dynamic_from_ieee_ieee() #0 {
258 ; CHECK-LABEL: @call_psz_dynamic_from_ieee_ieee(
259 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
260 ; CHECK-NEXT: ret i32 [[CALL]]
262 %call = call i32 @func_psz_dynamic()
266 define i32 @call_dynamic_dynamic_from_psz_psz() #1 {
267 ; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz(
268 ; CHECK-NEXT: ret i32 5
270 %call = call i32 @func_dynamic_dynamic()
274 define i32 @call_ieee_dynamic_from_psz_psz() #1 {
275 ; CHECK-LABEL: @call_ieee_dynamic_from_psz_psz(
276 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
277 ; CHECK-NEXT: ret i32 [[CALL]]
279 %call = call i32 @func_ieee_dynamic()
283 define i32 @call_dynamic_ieee_from_psz_psz() #1 {
284 ; CHECK-LABEL: @call_dynamic_ieee_from_psz_psz(
285 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
286 ; CHECK-NEXT: ret i32 [[CALL]]
288 %call = call i32 @func_dynamic_ieee()
292 define i32 @call_psz_dynamic_from_psz_psz() #1 {
293 ; CHECK-LABEL: @call_psz_dynamic_from_psz_psz(
294 ; CHECK-NEXT: ret i32 8
296 %call = call i32 @func_psz_dynamic()
300 define i32 @call_dynamic_psz_from_psz_psz() #1 {
301 ; CHECK-LABEL: @call_dynamic_psz_from_psz_psz(
302 ; CHECK-NEXT: ret i32 9
304 %call = call i32 @func_dynamic_psz()
308 define i32 @call_dynamic_dynamic_from_psz_ieee() #2 {
309 ; CHECK-LABEL: @call_dynamic_dynamic_from_psz_ieee(
310 ; CHECK-NEXT: ret i32 5
312 %call = call i32 @func_dynamic_dynamic()
316 define i32 @call_dynamic_ieee_from_psz_ieee() #2 {
317 ; CHECK-LABEL: @call_dynamic_ieee_from_psz_ieee(
318 ; CHECK-NEXT: ret i32 6
320 %call = call i32 @func_dynamic_ieee()
324 define i32 @call_ieee_dynamic_from_psz_ieee() #2 {
325 ; CHECK-LABEL: @call_ieee_dynamic_from_psz_ieee(
326 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
327 ; CHECK-NEXT: ret i32 [[CALL]]
329 %call = call i32 @func_ieee_dynamic()
333 define i32 @call_dynamic_psz_from_psz_ieee() #2 {
334 ; CHECK-LABEL: @call_dynamic_psz_from_psz_ieee(
335 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
336 ; CHECK-NEXT: ret i32 [[CALL]]
338 %call = call i32 @func_dynamic_psz()
342 define i32 @call_psz_dynamic_from_psz_ieee() #2 {
343 ; CHECK-LABEL: @call_psz_dynamic_from_psz_ieee(
344 ; CHECK-NEXT: ret i32 8
346 %call = call i32 @func_psz_dynamic()
350 define i32 @call_dynamic_dynamic_from_ieee_psz() #3 {
351 ; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_psz(
352 ; CHECK-NEXT: ret i32 5
354 %call = call i32 @func_dynamic_dynamic()
358 define i32 @call_ieee_dynamic_from_ieee_psz() #3 {
359 ; CHECK-LABEL: @call_ieee_dynamic_from_ieee_psz(
360 ; CHECK-NEXT: ret i32 7
362 %call = call i32 @func_ieee_dynamic()
366 define i32 @call_dynamic_ieee_from_ieee_psz() #3 {
367 ; CHECK-LABEL: @call_dynamic_ieee_from_ieee_psz(
368 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
369 ; CHECK-NEXT: ret i32 [[CALL]]
371 %call = call i32 @func_dynamic_ieee()
375 define i32 @call_dynamic_psz_from_ieee_psz() #3 {
376 ; CHECK-LABEL: @call_dynamic_psz_from_ieee_psz(
377 ; CHECK-NEXT: ret i32 9
379 %call = call i32 @func_dynamic_psz()
383 define i32 @call_psz_dynamic_from_ieee_psz() #3 {
384 ; CHECK-LABEL: @call_psz_dynamic_from_ieee_psz(
385 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
386 ; CHECK-NEXT: ret i32 [[CALL]]
388 %call = call i32 @func_psz_dynamic()
392 define i32 @call_dynamic_dynamic_from_dynamic_dynamic() #4 {
393 ; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_dynamic(
394 ; CHECK-NEXT: ret i32 5
396 %call = call i32 @func_dynamic_dynamic()
400 define i32 @call_ieee_ieee_from_dynamic_dynamic() #4 {
401 ; CHECK-LABEL: @call_ieee_ieee_from_dynamic_dynamic(
402 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
403 ; CHECK-NEXT: ret i32 [[CALL]]
405 %call = call i32 @func_ieee_ieee()
409 define i32 @call_ieee_dynamic_from_dynamic_dynamic() #4 {
410 ; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_dynamic(
411 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
412 ; CHECK-NEXT: ret i32 [[CALL]]
414 %call = call i32 @func_ieee_dynamic()
418 define i32 @call_dynamic_ieee_from_dynamic_dynamic() #4 {
419 ; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_dynamic(
420 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
421 ; CHECK-NEXT: ret i32 [[CALL]]
423 %call = call i32 @func_dynamic_ieee()
427 define i32 @call_psz_dynamic_from_dynamic_dynamic() #4 {
428 ; CHECK-LABEL: @call_psz_dynamic_from_dynamic_dynamic(
429 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
430 ; CHECK-NEXT: ret i32 [[CALL]]
432 %call = call i32 @func_psz_dynamic()
436 define i32 @call_dynamic_psz_from_dynamic_dynamic() #4 {
437 ; CHECK-LABEL: @call_dynamic_psz_from_dynamic_dynamic(
438 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
439 ; CHECK-NEXT: ret i32 [[CALL]]
441 %call = call i32 @func_dynamic_psz()
445 define i32 @call_psz_psz_from_dynamic_dynamic() #4 {
446 ; CHECK-LABEL: @call_psz_psz_from_dynamic_dynamic(
447 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
448 ; CHECK-NEXT: ret i32 [[CALL]]
450 %call = call i32 @func_psz_psz()
454 define i32 @call_psz_ieee_from_dynamic_dynamic() #4 {
455 ; CHECK-LABEL: @call_psz_ieee_from_dynamic_dynamic(
456 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
457 ; CHECK-NEXT: ret i32 [[CALL]]
459 %call = call i32 @func_psz_ieee()
463 define i32 @call_ieee_psz_from_dynamic_dynamic() #4 {
464 ; CHECK-LABEL: @call_ieee_psz_from_dynamic_dynamic(
465 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
466 ; CHECK-NEXT: ret i32 [[CALL]]
468 %call = call i32 @func_ieee_psz()
472 define i32 @call_ieee_ieee_from_dynamic_ieee() #5 {
473 ; CHECK-LABEL: @call_ieee_ieee_from_dynamic_ieee(
474 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
475 ; CHECK-NEXT: ret i32 [[CALL]]
477 %call = call i32 @func_ieee_ieee()
481 define i32 @call_ieee_dynamic_from_dynamic_ieee() #5 {
482 ; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_ieee(
483 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
484 ; CHECK-NEXT: ret i32 [[CALL]]
486 %call = call i32 @func_ieee_dynamic()
490 define i32 @call_dynamic_ieee_from_dynamic_ieee() #5 {
491 ; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_ieee(
492 ; CHECK-NEXT: ret i32 6
494 %call = call i32 @func_dynamic_ieee()
498 define i32 @call_psz_dynamic_from_dynamic_ieee() #5 {
499 ; CHECK-LABEL: @call_psz_dynamic_from_dynamic_ieee(
500 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
501 ; CHECK-NEXT: ret i32 [[CALL]]
503 %call = call i32 @func_psz_dynamic()
507 define i32 @call_dynamic_psz_from_dynamic_ieee() #5 {
508 ; CHECK-LABEL: @call_dynamic_psz_from_dynamic_ieee(
509 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
510 ; CHECK-NEXT: ret i32 [[CALL]]
512 %call = call i32 @func_dynamic_psz()
516 define i32 @call_psz_psz_from_dynamic_ieee() #5 {
517 ; CHECK-LABEL: @call_psz_psz_from_dynamic_ieee(
518 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
519 ; CHECK-NEXT: ret i32 [[CALL]]
521 %call = call i32 @func_psz_psz()
525 define i32 @call_psz_ieee_from_dynamic_ieee() #5 {
526 ; CHECK-LABEL: @call_psz_ieee_from_dynamic_ieee(
527 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
528 ; CHECK-NEXT: ret i32 [[CALL]]
530 %call = call i32 @func_psz_ieee()
534 define i32 @call_ieee_psz_from_dynamic_ieee() #5 {
535 ; CHECK-LABEL: @call_ieee_psz_from_dynamic_ieee(
536 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
537 ; CHECK-NEXT: ret i32 [[CALL]]
539 %call = call i32 @func_ieee_psz()
543 define i32 @call_ieee_ieee_from_ieee_dynamic() #6 {
544 ; CHECK-LABEL: @call_ieee_ieee_from_ieee_dynamic(
545 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
546 ; CHECK-NEXT: ret i32 [[CALL]]
548 %call = call i32 @func_ieee_ieee()
552 define i32 @call_ieee_dynamic_from_ieee_dynamic() #6 {
553 ; CHECK-LABEL: @call_ieee_dynamic_from_ieee_dynamic(
554 ; CHECK-NEXT: ret i32 7
556 %call = call i32 @func_ieee_dynamic()
560 define i32 @call_dynamic_ieee_from_ieee_dynamic() #6 {
561 ; CHECK-LABEL: @call_dynamic_ieee_from_ieee_dynamic(
562 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
563 ; CHECK-NEXT: ret i32 [[CALL]]
565 %call = call i32 @func_dynamic_ieee()
569 define i32 @call_dynamic_dynamic_from_ieee_dynamic() #6 {
570 ; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_dynamic(
571 ; CHECK-NEXT: ret i32 5
573 %call = call i32 @func_dynamic_dynamic()
577 define i32 @call_dynamic_psz_from_ieee_dynamic() #6 {
578 ; CHECK-LABEL: @call_dynamic_psz_from_ieee_dynamic(
579 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
580 ; CHECK-NEXT: ret i32 [[CALL]]
582 %call = call i32 @func_dynamic_psz()
586 define i32 @call_psz_dynamic_from_ieee_dynamic() #6 {
587 ; CHECK-LABEL: @call_psz_dynamic_from_ieee_dynamic(
588 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
589 ; CHECK-NEXT: ret i32 [[CALL]]
591 %call = call i32 @func_psz_dynamic()
595 define i32 @call_psz_psz_from_ieee_dynamic() #6 {
596 ; CHECK-LABEL: @call_psz_psz_from_ieee_dynamic(
597 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
598 ; CHECK-NEXT: ret i32 [[CALL]]
600 %call = call i32 @func_psz_psz()
604 define i32 @call_psz_ieee_from_ieee_dynamic() #6 {
605 ; CHECK-LABEL: @call_psz_ieee_from_ieee_dynamic(
606 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
607 ; CHECK-NEXT: ret i32 [[CALL]]
609 %call = call i32 @func_psz_ieee()
613 define i32 @call_ieee_psz_from_ieee_dynamic() #6 {
614 ; CHECK-LABEL: @call_ieee_psz_from_ieee_dynamic(
615 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
616 ; CHECK-NEXT: ret i32 [[CALL]]
618 %call = call i32 @func_ieee_psz()
622 define i32 @call_ieee_ieee_from_psz_dynamic() #7 {
623 ; CHECK-LABEL: @call_ieee_ieee_from_psz_dynamic(
624 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
625 ; CHECK-NEXT: ret i32 [[CALL]]
627 %call = call i32 @func_ieee_ieee()
631 define i32 @call_ieee_dynamic_from_psz_dynamic() #7 {
632 ; CHECK-LABEL: @call_ieee_dynamic_from_psz_dynamic(
633 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
634 ; CHECK-NEXT: ret i32 [[CALL]]
636 %call = call i32 @func_ieee_dynamic()
640 define i32 @call_dynamic_ieee_from_psz_dynamic() #7 {
641 ; CHECK-LABEL: @call_dynamic_ieee_from_psz_dynamic(
642 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
643 ; CHECK-NEXT: ret i32 [[CALL]]
645 %call = call i32 @func_dynamic_ieee()
649 define i32 @call_dynamic_psz_from_psz_dynamic() #7 {
650 ; CHECK-LABEL: @call_dynamic_psz_from_psz_dynamic(
651 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz()
652 ; CHECK-NEXT: ret i32 [[CALL]]
654 %call = call i32 @func_dynamic_psz()
658 define i32 @call_psz_dynamic_from_psz_dynamic() #7 {
659 ; CHECK-LABEL: @call_psz_dynamic_from_psz_dynamic(
660 ; CHECK-NEXT: ret i32 8
662 %call = call i32 @func_psz_dynamic()
666 define i32 @call_dynamic_dynamic_from_psz_dynamic() #7 {
667 ; CHECK-LABEL: @call_dynamic_dynamic_from_psz_dynamic(
668 ; CHECK-NEXT: ret i32 5
670 %call = call i32 @func_dynamic_dynamic()
674 define i32 @call_psz_ieee_from_psz_dynamic() #7 {
675 ; CHECK-LABEL: @call_psz_ieee_from_psz_dynamic(
676 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
677 ; CHECK-NEXT: ret i32 [[CALL]]
679 %call = call i32 @func_psz_ieee()
683 define i32 @call_ieee_psz_from_psz_dynamic() #7 {
684 ; CHECK-LABEL: @call_ieee_psz_from_psz_dynamic(
685 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
686 ; CHECK-NEXT: ret i32 [[CALL]]
688 %call = call i32 @func_ieee_psz()
692 define i32 @call_psz_psz_from_psz_dynamic() #7 {
693 ; CHECK-LABEL: @call_psz_psz_from_psz_dynamic(
694 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
695 ; CHECK-NEXT: ret i32 [[CALL]]
697 %call = call i32 @func_psz_psz()
701 define i32 @call_ieee_ieee_from_dynamic_psz() #8 {
702 ; CHECK-LABEL: @call_ieee_ieee_from_dynamic_psz(
703 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee()
704 ; CHECK-NEXT: ret i32 [[CALL]]
706 %call = call i32 @func_ieee_ieee()
710 define i32 @call_ieee_psz_from_dynamic_psz() #8 {
711 ; CHECK-LABEL: @call_ieee_psz_from_dynamic_psz(
712 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz()
713 ; CHECK-NEXT: ret i32 [[CALL]]
715 %call = call i32 @func_ieee_psz()
719 define i32 @call_psz_ieee_from_dynamic_psz() #8 {
720 ; CHECK-LABEL: @call_psz_ieee_from_dynamic_psz(
721 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee()
722 ; CHECK-NEXT: ret i32 [[CALL]]
724 %call = call i32 @func_psz_ieee()
728 define i32 @call_dynamic_dynamic_from_dynamic_psz() #8 {
729 ; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_psz(
730 ; CHECK-NEXT: ret i32 5
732 %call = call i32 @func_dynamic_dynamic()
736 define i32 @call_dynamic_psz_from_dynamic_psz() #8 {
737 ; CHECK-LABEL: @call_dynamic_psz_from_dynamic_psz(
738 ; CHECK-NEXT: ret i32 9
740 %call = call i32 @func_dynamic_psz()
744 define i32 @call_psz_dynamic_from_dynamic_psz() #8 {
745 ; CHECK-LABEL: @call_psz_dynamic_from_dynamic_psz(
746 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic()
747 ; CHECK-NEXT: ret i32 [[CALL]]
749 %call = call i32 @func_psz_dynamic()
753 define i32 @call_dynamic_ieee_from_dynamic_psz() #8 {
754 ; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_psz(
755 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee()
756 ; CHECK-NEXT: ret i32 [[CALL]]
758 %call = call i32 @func_dynamic_ieee()
762 define i32 @call_ieee_dynamic_from_dynamic_psz() #8 {
763 ; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_psz(
764 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic()
765 ; CHECK-NEXT: ret i32 [[CALL]]
767 %call = call i32 @func_ieee_dynamic()
771 define i32 @call_psz_psz_from_dynamic_psz() #8 {
772 ; CHECK-LABEL: @call_psz_psz_from_dynamic_psz(
773 ; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz()
774 ; CHECK-NEXT: ret i32 [[CALL]]
776 %call = call i32 @func_psz_psz()
780 ; --------------------------------------------------------------------
781 ; denormal-fp-math-f32
782 ; --------------------------------------------------------------------
784 define i32 @func_dynamic_dynamic_f32() #9 {
785 ; CHECK-LABEL: @func_dynamic_dynamic_f32(
786 ; CHECK-NEXT: ret i32 10
791 define i32 @func_psz_psz_f32() #10 {
792 ; CHECK-LABEL: @func_psz_psz_f32(
793 ; CHECK-NEXT: ret i32 11
798 define i32 @func_dynamic_dynamic_psz_psz_f32() #12 {
799 ; CHECK-LABEL: @func_dynamic_dynamic_psz_psz_f32(
800 ; CHECK-NEXT: ret i32 12
805 define i32 @call_dynamic_dynamic_f32_from_psz_psz_f32() #10 {
806 ; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz_f32(
807 ; CHECK-NEXT: ret i32 10
809 %result = call i32 @func_dynamic_dynamic_f32()
813 define i32 @call_psz_psz_from_psz_psz_f32() #10 {
814 ; CHECK-LABEL: @call_psz_psz_from_psz_psz_f32(
815 ; CHECK-NEXT: ret i32 10
817 %result = call i32 @func_dynamic_dynamic_f32()
821 define i32 @call_psz_psz_from_ieee_ieee_f32() #11 {
822 ; CHECK-LABEL: @call_psz_psz_from_ieee_ieee_f32(
823 ; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_psz_psz_f32()
824 ; CHECK-NEXT: ret i32 [[RESULT]]
826 %result = call i32 @func_psz_psz_f32()
830 define i32 @call_dynamic_dynamic_from_psz_psz_f32() #10 {
831 ; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz_f32(
832 ; CHECK-NEXT: ret i32 5
834 %result = call i32 @func_dynamic_dynamic()
838 define i32 @call_dynamic_dynamic_f32_from_psz_psz() #1 {
839 ; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz(
840 ; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_dynamic_dynamic_f32()
841 ; CHECK-NEXT: ret i32 [[RESULT]]
843 %result = call i32 @func_dynamic_dynamic_f32()
847 define i32 @call_psz_psz_f32_from_psz_psz() #1 {
848 ; CHECK-LABEL: @call_psz_psz_f32_from_psz_psz(
849 ; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_psz_psz_f32()
850 ; CHECK-NEXT: ret i32 [[RESULT]]
852 %result = call i32 @func_psz_psz_f32()
856 define i32 @call_dynamic_dynamic_psz_psz_f32_from_psz_psz() #1 {
857 ; CHECK-LABEL: @call_dynamic_dynamic_psz_psz_f32_from_psz_psz(
858 ; CHECK-NEXT: ret i32 12
860 %result = call i32 @func_dynamic_dynamic_psz_psz_f32()
864 attributes #0 = { "denormal-fp-math"="ieee,ieee" }
865 attributes #1 = { "denormal-fp-math"="preserve-sign,preserve-sign" }
866 attributes #2 = { "denormal-fp-math"="preserve-sign,ieee" }
867 attributes #3 = { "denormal-fp-math"="ieee,preserve-sign" }
868 attributes #4 = { "denormal-fp-math"="dynamic,dynamic" }
869 attributes #5 = { "denormal-fp-math"="dynamic,ieee" }
870 attributes #6 = { "denormal-fp-math"="ieee,dynamic" }
871 attributes #7 = { "denormal-fp-math"="preserve-sign,dynamic" }
872 attributes #8 = { "denormal-fp-math"="dynamic,preserve-sign" }
873 attributes #9 = { "denormal-fp-math-f32"="dynamic,dynamic" }
874 attributes #10 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" }
875 attributes #11 = { "denormal-fp-math-f32"="ieee,ieee" "denormal-fp-math"="preserve-sign,preserve-sign" }
876 attributes #12 = { "denormal-fp-math"="dynamic,dynamic" "denormal-fp-math-f32"="preserve-sign,preserve-sign" }