Commit a587ccd
authored
fix
fixes llvm#98389
As the issue describes, promoting `llvm.fma.f16` to `llvm.fma.f32` does
not work, because there is not enough precision to handle the repeated
rounding. `f64` does have sufficient space. So this PR explicitly
promotes the 16-bit fma to a 64-bit fma.
I could not find examples of a libcall being used for fma, but that's
something that could be looked in separately to work around code size
issues.llvm.fma.f16 double rounding issue when there is no native support (llvm#171904)1 parent 5587600 commit a587ccd
File tree
19 files changed
+906
-646
lines changed- llvm
- lib
- CodeGen
- SelectionDAG
- Target/RISCV
- test/CodeGen
- AArch64
- ARM
- Generic
- NVPTX
- RISCV
- SystemZ
- X86
19 files changed
+906
-646
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3510 | 3510 | | |
3511 | 3511 | | |
3512 | 3512 | | |
| 3513 | + | |
3513 | 3514 | | |
3514 | 3515 | | |
3515 | 3516 | | |
| |||
3518 | 3519 | | |
3519 | 3520 | | |
3520 | 3521 | | |
3521 | | - | |
| 3522 | + | |
| 3523 | + | |
| 3524 | + | |
| 3525 | + | |
| 3526 | + | |
| 3527 | + | |
| 3528 | + | |
| 3529 | + | |
| 3530 | + | |
| 3531 | + | |
| 3532 | + | |
| 3533 | + | |
| 3534 | + | |
| 3535 | + | |
| 3536 | + | |
| 3537 | + | |
3522 | 3538 | | |
3523 | | - | |
| 3539 | + | |
| 3540 | + | |
| 3541 | + | |
| 3542 | + | |
| 3543 | + | |
3524 | 3544 | | |
3525 | 3545 | | |
3526 | 3546 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1041 | 1041 | | |
1042 | 1042 | | |
1043 | 1043 | | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
1044 | 1049 | | |
1045 | 1050 | | |
1046 | 1051 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
570 | 570 | | |
571 | 571 | | |
572 | 572 | | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
573 | 582 | | |
574 | 583 | | |
575 | 584 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1378 | 1378 | | |
1379 | 1379 | | |
1380 | 1380 | | |
1381 | | - | |
1382 | | - | |
1383 | | - | |
1384 | | - | |
1385 | | - | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
1386 | 1386 | | |
1387 | 1387 | | |
1388 | 1388 | | |
| |||
0 commit comments