Commit a636c23
committed
[PowerPC] Change
On PowerPC targets, `half` uses the default legalization of promoting to
a `f32`. However, this has some fundamental issues related to inability
to round trip. Resolve this by switching to the soft legalization, which
passes `f16` as an `i16`.
The PowerPC ABI Specification does not define a `_Float16` type, so the
calling convention changes are acceptable.
Fixes the PowerPC portion of [1]. A similar change was done for MIPS in
f0231b6 ("[MIPS] Use softPromoteHalf legalization for fp16 rather
than PromoteFloat (llvm#110199)") and for Loongarch in 13280d9
("[loongarch][DAG][FREEZE] Fix crash when FREEZE a half(f16) type on
loongarch (llvm#107791)").
[1]: llvm#97975half to use soft promotion rather than PromoteFloat
1 parent 43e0891 commit a636c23
File tree
14 files changed
+3315
-5666
lines changed- llvm
- docs
- lib
- CodeGen/SelectionDAG
- Target/PowerPC
- test/CodeGen
- Generic
- PowerPC
14 files changed
+3315
-5666
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
| 117 | + | |
116 | 118 | | |
117 | 119 | | |
118 | 120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
843 | 843 | | |
844 | 844 | | |
845 | 845 | | |
846 | | - | |
| 846 | + | |
847 | 847 | | |
848 | 848 | | |
849 | 849 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
790 | 790 | | |
791 | 791 | | |
792 | 792 | | |
| 793 | + | |
| 794 | + | |
793 | 795 | | |
794 | 796 | | |
795 | 797 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
469 | 469 | | |
470 | 470 | | |
471 | 471 | | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | 472 | | |
478 | 473 | | |
479 | 474 | | |
480 | 475 | | |
481 | 476 | | |
482 | | - | |
483 | | - | |
484 | | - | |
485 | | - | |
486 | 477 | | |
487 | 478 | | |
488 | 479 | | |
489 | 480 | | |
490 | | - | |
491 | | - | |
492 | | - | |
493 | | - | |
494 | | - | |
495 | 481 | | |
496 | 482 | | |
497 | 483 | | |
498 | 484 | | |
499 | 485 | | |
500 | | - | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
505 | 486 | | |
506 | 487 | | |
507 | 488 | | |
| |||
575 | 556 | | |
576 | 557 | | |
577 | 558 | | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
615 | | - | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
616 | 564 | | |
617 | 565 | | |
618 | 566 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1349 | 1349 | | |
1350 | 1350 | | |
1351 | 1351 | | |
1352 | | - | |
1353 | | - | |
1354 | | - | |
1355 | 1352 | | |
1356 | 1353 | | |
1357 | 1354 | | |
| |||
1364 | 1361 | | |
1365 | 1362 | | |
1366 | 1363 | | |
1367 | | - | |
1368 | | - | |
1369 | | - | |
1370 | 1364 | | |
1371 | 1365 | | |
1372 | 1366 | | |
| |||
1379 | 1373 | | |
1380 | 1374 | | |
1381 | 1375 | | |
1382 | | - | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
1383 | 1379 | | |
1384 | 1380 | | |
1385 | 1381 | | |
1386 | 1382 | | |
1387 | 1383 | | |
1388 | 1384 | | |
1389 | 1385 | | |
| 1386 | + | |
1390 | 1387 | | |
| 1388 | + | |
| 1389 | + | |
1391 | 1390 | | |
1392 | 1391 | | |
1393 | 1392 | | |
| |||
0 commit comments