Commit e4f38a611f

Alex Rønne Petersen <alex@alexrp.com>
2025-08-02 21:17:38
llvm: switch to native f16 IR type for all hexagon targets
This was fixed in LLVM 21, in particular for targets older than v68.
1 parent 1c858ba
Changed files (2)
lib
compiler_rt
src
codegen
lib/compiler_rt/common.zig
@@ -123,6 +123,7 @@ pub fn F16T(comptime OtherType: type) type {
         .thumbeb,
         .aarch64,
         .aarch64_be,
+        .hexagon,
         .loongarch32,
         .loongarch64,
         .nvptx,
@@ -135,7 +136,6 @@ pub fn F16T(comptime OtherType: type) type {
         .spirv32,
         .spirv64,
         => f16,
-        .hexagon => if (builtin.target.cpu.has(.hexagon, .v68)) f16 else u16,
         .x86, .x86_64 => if (builtin.target.os.tag.isDarwin()) switch (OtherType) {
             // Starting with LLVM 16, Darwin uses different abi for f16
             // depending on the type of the other return/argument..???
src/codegen/llvm.zig
@@ -12852,8 +12852,6 @@ fn backendSupportsF16(target: *const std.Target) bool {
         // 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,