diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2025-08-27 17:20:21 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2025-09-11 11:44:08 +0000 |
commit | b996d4509f1724d92a08dae70d8354fbb5561fb7 (patch) | |
tree | b85345cabda0860a3d37aad1e0a3c5d1fdae9e9f /libjava/classpath | |
parent | aa4aafbad5235fd302c39e1d8b7cb9cdea11c67c (diff) | |
download | gcc-b996d4509f1724d92a08dae70d8354fbb5561fb7.zip gcc-b996d4509f1724d92a08dae70d8354fbb5561fb7.tar.gz gcc-b996d4509f1724d92a08dae70d8354fbb5561fb7.tar.bz2 |
AArch64: Add isfinite expander [PR 66462]
Add an expander for isfinite using integer arithmetic. This is
typically faster and avoids generating spurious exceptions on
signaling NaNs. This fixes part of PR66462.
int isfinite1 (float x) { return __builtin_isfinite (x); }
Before:
fabs s0, s0
mov w0, 2139095039
fmov s31, w0
fcmp s0, s31
cset w0, hi
eor w0, w0, 1
ret
After:
fmov w1, s0
mov w0, -16777216
cmp w0, w1, lsl 1
cset w0, hi
ret
gcc:
PR middle-end/66462
* config/aarch64/aarch64.md (isfinite<mode>2): Add new expander.
gcc/testsuite:
PR middle-end/66462
* gcc.target/aarch64/pr66462.c: Add tests for isfinite.
Diffstat (limited to 'libjava/classpath')
0 files changed, 0 insertions, 0 deletions