diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2025-08-13 14:56:57 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2025-08-28 14:12:04 +0000 |
commit | 8187d2630fac77176a4a806a60b0399a1e0376d8 (patch) | |
tree | 946dca0d8b6fcb22e1a7f04b85387848002587c7 /libjava | |
parent | f4b96998f1c1aa22c70462d018f8a3d4a8ec214a (diff) | |
download | gcc-8187d2630fac77176a4a806a60b0399a1e0376d8.zip gcc-8187d2630fac77176a4a806a60b0399a1e0376d8.tar.gz gcc-8187d2630fac77176a4a806a60b0399a1e0376d8.tar.bz2 |
AArch64: Add isinf expander [PR 66462]
Add an expander for isinf using integer arithmetic. This is
typically faster and avoids generating spurious exceptions on
signaling NaNs. This fixes part of PR66462.
int isinf1 (float x) { return __builtin_isinf (x); }
Before:
fabs s0, s0
mov w0, 2139095039
fmov s31, w0
fcmp s0, s31
cset w0, le
eor w0, w0, 1
ret
After:
fmov w1, s0
mov w0, -16777216
cmp w0, w1, lsl 1
cset w0, eq
ret
gcc:
PR middle-end/66462
* config/aarch64/aarch64.md (isinf<mode>2): Add new expander.
* config/aarch64/iterators.md (mantissa_bits): Add new mode_attr.
gcc/testsuite:
PR middle-end/66462
* gcc.target/aarch64/pr66462.c: Add new test.
Diffstat (limited to 'libjava')
0 files changed, 0 insertions, 0 deletions