[PATCH] PR target/66824: Allow software FP SFmode in FP splitter

Uros Bizjak ubizjak@gmail.com
Sun Jul 12 17:56:00 GMT 2015


On Sat, Jul 11, 2015 at 9:23 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Jul 09, 2015 at 01:58:22PM -0700, H.J. Lu wrote:
>> On Thu, Jul 09, 2015 at 12:13:38PM -0700, H.J. Lu wrote:
>> > ix86_split_long_move can optimize floating point constant move, which
>> > can be used to optimize SFmode move for IA MCU.
>> >
>> > OK for trunk if there is no regression?
>> >
>> >
>> > H.J.
>> > ---
>> > gcc/
>> >
>> >     PR target/66824
>> >     * config/i386/i386.c (ix86_split_to_parts): Allow SFmode move
>> >     for IA MCU.
>> >     (ix86_split_long_move): Support single move.
>> >     * config/i386/i386.md (FP splitter): Allow SFmode for IA MCU.
>> >
>> > gcc/testsuite/
>> >
>> >     PR target/66824
>> >     * gcc.target/i386/pr66824.c: New test.
>> > ---
>>
>>
>> I missed the testcase.  Here is the updated patch.
>>
>
> ix86_split_long_move can optimize floating point constant move, which
> can be used to optimize SFmode move with software floating point.
>
> OK for trunk if there are no regressions?

No, this patch is wrong. Please investigate why "*movsf_internal"
doesn't use "?r/rmF" alternative in case FP regs are unavailable.
Perhaps you should add new alternative with a conditional constraint,
but without "?". And... please use:

#define TARGET_HARD_FP_REGS    (TARGET_80387 || TARGET_MMX || TARGET_SSE)

Uros.



More information about the Gcc-patches mailing list