| ... | ... | @@ -12472,21 +12472,21 @@ fn backendSupportsF80(target: std.Target) bool { |
| 12472 | 12472 | /// or if it produces miscompilations. |
| 12473 | 12473 | fn backendSupportsF16(target: std.Target) bool { |
| 12474 | 12474 | return switch (target.cpu.arch) { |
| 12475 | | // LoongArch can be removed from this list with LLVM 20. |
| 12476 | | .loongarch32, |
| 12477 | | .loongarch64, |
| 12475 | // https://github.com/llvm/llvm-project/issues/97981 |
| 12476 | .csky, |
| 12477 | // https://github.com/llvm/llvm-project/issues/97981 |
| 12478 | 12478 | .hexagon, |
| 12479 | // https://github.com/llvm/llvm-project/issues/97981 |
| 12479 | 12480 | .powerpc, |
| 12480 | 12481 | .powerpcle, |
| 12481 | 12482 | .powerpc64, |
| 12482 | 12483 | .powerpc64le, |
| 12484 | // https://github.com/llvm/llvm-project/issues/97981 |
| 12483 | 12485 | .wasm32, |
| 12484 | 12486 | .wasm64, |
| 12485 | | .mips, |
| 12486 | | .mipsel, |
| 12487 | | .mips64, |
| 12488 | | .mips64el, |
| 12487 | // https://github.com/llvm/llvm-project/issues/50374 |
| 12489 | 12488 | .s390x, |
| 12489 | // https://github.com/llvm/llvm-project/issues/97981 |
| 12490 | 12490 | .sparc, |
| 12491 | 12491 | .sparc64, |
| 12492 | 12492 | => false, |
| ... | ... | @@ -12494,7 +12494,8 @@ fn backendSupportsF16(target: std.Target) bool { |
| 12494 | 12494 | .armeb, |
| 12495 | 12495 | .thumb, |
| 12496 | 12496 | .thumbeb, |
| 12497 | | => target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fp_armv8), |
| 12497 | => target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fullfp16), |
| 12498 | // https://github.com/llvm/llvm-project/issues/129394 |
| 12498 | 12499 | .aarch64, |
| 12499 | 12500 | .aarch64_be, |
| 12500 | 12501 | => std.Target.aarch64.featureSetHas(target.cpu.features, .fp_armv8), |
| ... | ... | @@ -12507,11 +12508,18 @@ fn backendSupportsF16(target: std.Target) bool { |
| 12507 | 12508 | /// or if it produces miscompilations. |
| 12508 | 12509 | fn backendSupportsF128(target: std.Target) bool { |
| 12509 | 12510 | return switch (target.cpu.arch) { |
| 12511 | // https://github.com/llvm/llvm-project/issues/121122 |
| 12510 | 12512 | .amdgcn, |
| 12513 | // Test failures all over the place. |
| 12511 | 12514 | .mips64, |
| 12512 | 12515 | .mips64el, |
| 12516 | // https://github.com/llvm/llvm-project/issues/95471 |
| 12517 | .nvptx, |
| 12518 | .nvptx64, |
| 12519 | // https://github.com/llvm/llvm-project/issues/41838 |
| 12513 | 12520 | .sparc, |
| 12514 | 12521 | => false, |
| 12522 | // https://github.com/llvm/llvm-project/issues/101545 |
| 12515 | 12523 | .powerpc, |
| 12516 | 12524 | .powerpcle, |
| 12517 | 12525 | .powerpc64, |
| ... | ... | @@ -12522,9 +12530,6 @@ fn backendSupportsF128(target: std.Target) bool { |
| 12522 | 12530 | .thumb, |
| 12523 | 12531 | .thumbeb, |
| 12524 | 12532 | => target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fp_armv8), |
| 12525 | | .aarch64, |
| 12526 | | .aarch64_be, |
| 12527 | | => std.Target.aarch64.featureSetHas(target.cpu.features, .fp_armv8), |
| 12528 | 12533 | else => true, |
| 12529 | 12534 | }; |
| 12530 | 12535 | } |