r194972 - in /trunk/gcc: ChangeLog config/aarch...

jgreenhalgh@gcc.gnu.org jgreenhalgh@gcc.gnu.org
Mon Jan 7 15:22:00 GMT 2013


Author: jgreenhalgh
Date: Mon Jan  7 15:22:06 2013
New Revision: 194972

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194972
Log:
[AARCH64] Add support for vector and scalar floating-point immediate loads.

gcc/

	* config/aarch64/aarch64-protos.h
	(aarch64_const_double_zero_rtx_p): Rename to...
	(aarch64_float_const_zero_rtx_p): ...this.
	(aarch64_float_const_representable_p): New.
	(aarch64_output_simd_mov_immediate): Likewise.
	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
	move immediate case.
	* config/aarch64/aarch64.c
	(aarch64_const_double_zero_rtx_p): Rename to...
	(aarch64_float_const_zero_rtx_p): ...this.
	(aarch64_print_operand): Allow printing of new constants.
	(aarch64_valid_floating_const): New.
	(aarch64_legitimate_constant_p): Check for valid floating-point
	constants.
	(aarch64_simd_valid_immediate): Likewise.
	(aarch64_vect_float_const_representable_p): New.
	(aarch64_float_const_representable_p): Likewise.
	(aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
	(aarch64_output_simd_mov_immediate): New.
	* config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
	(*movdf_aarch64): Likewise.
	* config/aarch64/constraints.md (Ufc): New.
	(Y): call aarch64_float_const_zero_rtx.
	* config/aarch64/predicates.md (aarch64_fp_compare_operand): New.

gcc/testsuite/

	* gcc.target/aarch64/fmovd.c: New.
	* gcc.target/aarch64/fmovf.c: Likewise.
	* gcc.target/aarch64/fmovd-zero.c: Likewise.
	* gcc.target/aarch64/fmovf-zero.c: Likewise.
	* gcc.target/aarch64/vect-fmovd.c: Likewise.
	* gcc.target/aarch64/vect-fmovf.c: Likewise.
	* gcc.target/aarch64/vect-fmovd-zero.c: Likewise.
	* gcc.target/aarch64/vect-fmovf-zero.c: Likewise.


Added:
    trunk/gcc/testsuite/gcc.target/aarch64/fmovd-zero.c
    trunk/gcc/testsuite/gcc.target/aarch64/fmovd.c
    trunk/gcc/testsuite/gcc.target/aarch64/fmovf-zero.c
    trunk/gcc/testsuite/gcc.target/aarch64/fmovf.c
    trunk/gcc/testsuite/gcc.target/aarch64/vect-fmovd-zero.c
    trunk/gcc/testsuite/gcc.target/aarch64/vect-fmovd.c
    trunk/gcc/testsuite/gcc.target/aarch64/vect-fmovf-zero.c
    trunk/gcc/testsuite/gcc.target/aarch64/vect-fmovf.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-protos.h
    trunk/gcc/config/aarch64/aarch64-simd.md
    trunk/gcc/config/aarch64/aarch64.c
    trunk/gcc/config/aarch64/aarch64.md
    trunk/gcc/config/aarch64/constraints.md
    trunk/gcc/config/aarch64/predicates.md
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list