aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/invoke.texi
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2024-11-21 07:41:34 +0000
committerKewen Lin <linkw@gcc.gnu.org>2024-11-21 07:41:34 +0000
commit10e702789eeabcc88451e34c2a5c7dccb96190a5 (patch)
treef21fdfc248078586826b1fb0f8a85a6d7fb740f6 /gcc/doc/invoke.texi
parentbaf536754f615c808f02592b765cdd900f240359 (diff)
downloadgcc-10e702789eeabcc88451e34c2a5c7dccb96190a5.zip
gcc-10e702789eeabcc88451e34c2a5c7dccb96190a5.tar.gz
gcc-10e702789eeabcc88451e34c2a5c7dccb96190a5.tar.bz2
rs6000: Adjust FLOAT128 signbit2 expander for P8 LE [PR114567]
As the associated test case shows, signbit generated assembly is sub-optimal for _Float128 argument from memory on P8 LE. On P8 LE, p8swap pass puts an explicit AND -16 on the memory, which causes mode_dependent_address_p considers it's invalid to change its mode and combine fails to make use of the existing pattern signbit<SIGNBIT:mode>2_dm_mem. Considering it's always more efficient to make use of 8 bytes load and shift on P8 LE, this patch is to adjust the current expander and treat it specially. PR target/114567 gcc/ChangeLog: * config/rs6000/rs6000.md (expander signbit<FLOAT128:mode>2): Adjust. (*signbit<mode>2_dm_mem): Rename to ... (signbit<mode>2_dm_mem): ... this. gcc/testsuite/ChangeLog: * gcc.target/powerpc/pr114567.c: New test.
Diffstat (limited to 'gcc/doc/invoke.texi')
0 files changed, 0 insertions, 0 deletions