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


On 9 September 2014 13:02, Ramana Radhakrishnan
<ramana....@googlemail.com> wrote:
On Tue, Aug 19, 2014 at 4:22 PM, Kyrill Tkachov <kyrylo.tkac...@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.tkac...@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.tkac...@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.


Reply via email to