aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-03-10 07:00:41 +0100
committerAlex Rønne Petersen <alex@alexrp.com>2025-04-04 06:08:10 +0200
commit858305385d80f736e3b4b80ecdaaf77f100d21e1 (patch)
treeed951ffb2e16c9d05e1da5381ecf2682c9aa0aba /src/codegen
parentcf9c6f5298924f95e83f2be0e9efb50fe2f61d92 (diff)
downloadzig-858305385d80f736e3b4b80ecdaaf77f100d21e1.tar.gz
zig-858305385d80f736e3b4b80ecdaaf77f100d21e1.zip
llvm: Update the list of targets that use native f16/f128.
Closes #22003. Closes #22013.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 840d6fce2d..2c420fb19d 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -12472,21 +12472,21 @@ fn backendSupportsF80(target: std.Target) bool {
/// or if it produces miscompilations.
fn backendSupportsF16(target: std.Target) bool {
return switch (target.cpu.arch) {
- // LoongArch can be removed from this list with LLVM 20.
- .loongarch32,
- .loongarch64,
+ // https://github.com/llvm/llvm-project/issues/97981
+ .csky,
+ // https://github.com/llvm/llvm-project/issues/97981
.hexagon,
+ // https://github.com/llvm/llvm-project/issues/97981
.powerpc,
.powerpcle,
.powerpc64,
.powerpc64le,
+ // https://github.com/llvm/llvm-project/issues/97981
.wasm32,
.wasm64,
- .mips,
- .mipsel,
- .mips64,
- .mips64el,
+ // https://github.com/llvm/llvm-project/issues/50374
.s390x,
+ // https://github.com/llvm/llvm-project/issues/97981
.sparc,
.sparc64,
=> false,
@@ -12494,7 +12494,8 @@ fn backendSupportsF16(target: std.Target) bool {
.armeb,
.thumb,
.thumbeb,
- => target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fp_armv8),
+ => target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fullfp16),
+ // https://github.com/llvm/llvm-project/issues/129394
.aarch64,
.aarch64_be,
=> std.Target.aarch64.featureSetHas(target.cpu.features, .fp_armv8),
@@ -12507,11 +12508,18 @@ fn backendSupportsF16(target: std.Target) bool {
/// or if it produces miscompilations.
fn backendSupportsF128(target: std.Target) bool {
return switch (target.cpu.arch) {
+ // https://github.com/llvm/llvm-project/issues/121122
.amdgcn,
+ // Test failures all over the place.
.mips64,
.mips64el,
+ // https://github.com/llvm/llvm-project/issues/95471
+ .nvptx,
+ .nvptx64,
+ // https://github.com/llvm/llvm-project/issues/41838
.sparc,
=> false,
+ // https://github.com/llvm/llvm-project/issues/101545
.powerpc,
.powerpcle,
.powerpc64,
@@ -12522,9 +12530,6 @@ fn backendSupportsF128(target: std.Target) bool {
.thumb,
.thumbeb,
=> target.abi.float() == .soft or std.Target.arm.featureSetHas(target.cpu.features, .fp_armv8),
- .aarch64,
- .aarch64_be,
- => std.Target.aarch64.featureSetHas(target.cpu.features, .fp_armv8),
else => true,
};
}