[PATCH][ARM][1/7] Convert FP mnemonics to UAL | mov patterns

Kyrill Tkachov kyrylo.tkachov@arm.com
Wed Sep 10 08:57:00 GMT 2014


On 10/09/14 09:40, Christophe Lyon wrote:
> Hi,
Hi Christophe,

>
> On 9 September 2014 13:02, Ramana Radhakrishnan
> <ramana.gcc@googlemail.com> wrote:
>> On Tue, Aug 19, 2014 at 4:22 PM, Kyrill Tkachov <kyrylo.tkachov@arm.com> wrote:
>>> Hi all,
>>>
>>> In this patch the move patterns are updated.
>>> For the fconst case where the constant is encoded in a decimal
>>> representation before going into the immediate field of the assembly
>>> instruction UAL syntax allows for the real operand to be output directly
>>> and leaves the assembler to do the encoding.
>>> This simplifies the logic in arm_print_operand a bit.
>>>
>>> fp_immediate_constant is deleted and it seems that the function was not
>>> meant to be used anyway (it returned "0" for all inputs!)
>>>
>>> Ok for trunk?
>> Ok.
>>
>> Ramana
>>
> I've noticed that your patch makes
> gcc.target/arm/memset-inline-5.c
> fail when the compiler generates code for a57 + crypto-neon-fp-armv8.

I've managed to reproduce the failure as well (don't forget the 
-mfloat-abi=hard), however
I tried with and without my patch and could still see the failure. 
Looking at the test itself I don't
see what my patch could have changed in this department...

I'm cc'ing Bin since he added the test for his recent memset inlining work.
Bin, could you have a look please?

Thanks,
Kyrill
> Passed now fails          [PASS => FAIL]:
>    gcc.target/arm/memset-inline-5.c scan-assembler-not vstr
>
> You can have a look at:
> http://cbuild.validation.linaro.org/build/cross-validation/gcc/trunk/215050/report-build-info.html
> (search for the a57 lines)
>
> (The other lines marked as regressions can be ignored: they are caused
> by your changes in the tests output, I not yet able to associate the
> new pass with the new fail)
>
> Thanks,
>
> Christophe.
>
>>> Thanks,
>>> Kyrill
>>>
>>> 2014-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>>>
>>>       * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
>>>       multiple.
>>>       (arm_print_operand): Don't convert real values to decimal
>>>       representation in default case.
>>>       (fp_immediate_constant): Delete.
>>>       * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
>>>       * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
>>>       syntax.
>>>       (*thumb2_movsi_vfp): Likewise.
>>>       (*movdi_vfp): Likewise.
>>>       (*movdi_vfp_cortexa8): Likewise.
>>>       (*movhf_vfp_neon): Likewise.
>>>       (*movhf_vfp): Likewise.
>>>       (*movsf_vfp): Likewise.
>>>       (*thumb2_movsf_vfp): Likewise.
>>>       (*movdf_vfp): Likewise.
>>>       (*thumb2_movdf_vfp): Likewise.
>>>       (*movsfcc_vfp): Likewise.
>>>       (*thumb2_movsfcc_vfp): Likewise.
>>>       (*movdfcc_vfp): Likewise.
>>>       (*thumb2_movdfcc_vfp): Likewise.
>>>
>>> 2014-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>>>
>>>       * gcc.target/arm/pr51835.c: Update expected assembly.
>>>       * gcc.target/arm/vfp-1.c: Likewise.
>>>       * gcc.target/arm/vfp-ldmdbd.c: Likewise.
>>>       * gcc.target/arm/vfp-ldmdbs.c: Likewise.
>>>       * gcc.target/arm/vfp-ldmiad.c: Likewise.
>>>       * gcc.target/arm/vfp-ldmias.c: Likewise.
>>>       * gcc.target/arm/vfp-stmdbd.c: Likewise.
>>>       * gcc.target/arm/vfp-stmdbs.c: Likewise.
>>>       * gcc.target/arm/vfp-stmiad.c: Likewise.
>>>       * gcc.target/arm/vfp-stmias.c: Likewise.




More information about the Gcc-patches mailing list