Skip to content
Snippets Groups Projects
Commit 10e70278 authored by Kewen Lin's avatar Kewen Lin Committed by Kewen Lin
Browse files

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.
parent baf53675
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment