[llvm-branch-commits] [llvm] release/19.x: [PowerPC] Respect endianness when bitcasting to fp128 (#95931) (PR #105623)

2024-08-26 Thread Trevor Gross via llvm-branch-commits

tgross35 wrote:

(I'm not really involved with LLVM but I am doing a lot of f128 work and 
requested the backport)

This seems unlikely to be a regression. There have a handful of f128-related 
bugs on various ppc platforms so I suspect this is just something that hadn't 
been tested before now.

The problem this fixes is pretty fundamental, it means any sort of soft float 
operations are completely broken on some ppc targets. This is how I originally 
identified the issue, in 
https://github.com/rust-lang/compiler-builtins/pull/606#issuecomment-2105657287.
 Backporting isn't critical; at this time it probably only affects those of us 
that are experimenting with f128 support, there can't be many/any end users. I 
was just hoping for a fix soonish to get ppc f128 caught up to the other 
targets, since is one of the few popular 64-bit linux target to still have bugs 
(our more complete list: 
https://github.com/rust-lang/rust/blob/3f121b9461cce02a703a0e7e450568849dfaa074/library/std/build.rs#L123-L141)

https://github.com/llvm/llvm-project/pull/105623
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/19.x: [loongarch][DAG][FREEZE] Fix crash when FREEZE a half(f16) type on loongarch (#107791) (PR #109093)

2024-10-28 Thread Trevor Gross via llvm-branch-commits

tgross35 wrote:

> @heiher this would still break the ABI right? so it would still create 
> problem for downstream users like rust?

Speaking only from a Rust perspective, don't worry too much about making 
breaking changes that fix `f16` or `f128` behavior. The types are nightly-only 
for now (probably will be that way for at least a year or so) so we don't have 
any public guarantees. (I would just get to un-skip `f16` tests on another arch 
sooner).

I don't know what other frontends exposes this type but the commit mentions Zig.

If it is preferable to keep using float registers, it sounds like there is 
another fix for the precision issue rather than changing the ABI 
https://github.com/llvm/llvm-project/issues/97975#issuecomment-2218678418. I 
don't think there is a test for the precision yet.

https://github.com/llvm/llvm-project/pull/109093
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/19.x: [loongarch][DAG][FREEZE] Fix crash when FREEZE a half(f16) type on loongarch (#107791) (PR #109093)

2024-09-26 Thread Trevor Gross via llvm-branch-commits

tgross35 wrote:

> Currently, Rust's compiler-builtins has marked fp16 as available for 
> loongarch64, but in fact, the functionality is broken. Even with this patch, 
> it is not optimal. Subjectively, I hope these patches can be backported to 
> LLVM 19 to avoid ABI incompatibility issues across multiple versions. If we 
> don’t break anything unrelated to fp16, it won’t be a bad thing to work on 
> fixing fp16, as it was already broken to begin with. Thanks.

If you are referring to 
https://github.com/rust-lang/compiler-builtins/blob/bb18ce58c2b5fec081a5dd3553aa960a36b8de5c/configure.rs#L51-L91,
 we only disable f16/f128 on platforms where LLVM 19 actually has a crash or 
produces code that can't be linked. Quite a few of the targets that aren't 
disabled there have some form of ABI issue - so we just build the symbols but 
don't actually test with them.

(the config for what gets tested is at 
https://github.com/rust-lang/rust/blob/2bd1e894efde3b6be857ad345914a3b1cea51def/library/std/build.rs#L81-L186)


https://github.com/llvm/llvm-project/pull/109093
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/20.x: [PowerPC] Support conversion between f16 and f128 (#130158) (PR #132049)

2025-03-19 Thread Trevor Gross via llvm-branch-commits

tgross35 wrote:

> @tgross35 What do you think about merging this PR to the release branch?

I'd be happy to have it but it's certainly not my call. @RolandF77 was the 
original reviewer.

https://github.com/llvm/llvm-project/pull/132049
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] RuntimeLibcalls: Remove darwin override of half convert libcalls (PR #148782)

2025-07-14 Thread Trevor Gross via llvm-branch-commits

https://github.com/tgross35 commented:

LGTM, this matches what I've seen while inspecting the tablegen output

https://github.com/llvm/llvm-project/pull/148782
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] RuntimeLibcalls: Stop opting out of exp10 (PR #148604)

2025-07-14 Thread Trevor Gross via llvm-branch-commits


@@ -0,0 +1,31 @@
+; RUN: %if aarch64-registered-target %{ llc < %s 
-mtriple=aarch64-unknown-linux-gnu| FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if aarch64-registered-target %{ llc < %s 
-mtriple=aarch64-unknown-linux-musl   | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if aarch64-registered-target %{ llc < %s -mtriple=aarch64-unknown-none 
| FileCheck %s --check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if aarch64-registered-target %{ not llc -mtriple=arm64-apple-macosx 
-filetype=null %s 2>&1 | FileCheck --check-prefix=ERR %s %}
+; RUN: %if arm-registered-target %{ llc < %s -mtriple=arm-none-eabi
| FileCheck %s --check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if arm-registered-target %{ llc < %s 
-mtriple=arm-unknown-linux-gnueabi| FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if powerpc-registered-target %{ llc < %s 
-mtriple=powerpc-unknown-linux-gnu| FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-F128  %}
+; RUN: %if powerpc-registered-target %{ llc < %s 
-mtriple=powerpc64-unknown-linux-gnu  | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-F128  %}
+; RUN: %if powerpc-registered-target %{ llc < %s 
-mtriple=powerpc64-unknown-linux-musl | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-F128  %}
+; RUN: %if riscv-registered-target   %{ llc < %s 
-mtriple=riscv32-unknown-linux-gnu| FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if systemz-registered-target %{ llc < %s 
-mtriple=s390x-unknown-linux-gnu  | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-S390X %}
+; RUN: %if x86-registered-target %{ llc < %s 
-mtriple=i686-unknown-linux-gnu   | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-F128  %}
+; RUN: %if x86-registered-target %{ llc < %s 
-mtriple=i686-unknown-linux-musl  | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+; RUN: %if x86-registered-target %{ llc < %s 
-mtriple=x86_64-unknown-linux-gnu | FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-F128  %}
+; RUN: %if x86-registered-target %{ llc < %s 
-mtriple=x86_64-unknown-linux-musl| FileCheck %s 
--check-prefixes=CHECK-ALL,CHECK-USELD %}
+;
+; FIXME(#144006): Windows-MSVC should also be run but has a ldexp selection
+; failure.
+; %if x86-registered-target %{ llc < %s -mtriple=x86_64-pc-windows-msvc
   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK-ALL,CHECK-F128  
%}

tgross35 wrote:

```suggestion
; RUN %if x86-registered-target %{ llc < %s -mtriple=x86_64-pc-windows-msvc 
   | FileCheck %s --check-prefixes=CHECK-ALL,CHECK-F128  %}
```

Since that's not relevant here. I'll wind up removing these in 
https://github.com/llvm/llvm-project/pull/148326 anyway

https://github.com/llvm/llvm-project/pull/148604
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits