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

jgreenhalgh@gcc.gnu.org jgreenhalgh@gcc.gnu.org
Wed Dec 5 10:34:00 GMT 2012


Author: jgreenhalgh
Date: Wed Dec  5 10:34:31 2012
New Revision: 194197

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194197
Log:
[AARCH64] Add support for vectorizable standard math patterns.

gcc/

	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): New.
	* config/aarch64/aarch64-protos.h
	(aarch64_builtin_vectorized_function): Declare.
	* config/aarch64/aarch64-simd-builtins.def (frintz, frintp): Add.
	(frintm, frinti, frintx, frinta, fcvtzs, fcvtzu): Likewise.
	(fcvtas, fcvtau, fcvtps, fcvtpu, fcvtms, fcvtmu): Likewise.
	* config/aarch64/aarch64-simd.md
	(aarch64_frint_<frint_suffix><mode>): New.
	(<frint_pattern><mode>2): Likewise.
	(aarch64_fcvt<frint_suffix><su><mode>): Likewise.
	(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Likewise.
	* config/aarch64/aarch64.c (TARGET_VECTORIZE_BUILTINS): Define.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
	* config/aarch64/aarch64.md
	(btrunc<mode>2, ceil<mode>2, floor<mode>2)
	(round<mode>2, rint<mode>2, nearbyint<mode>2): Consolidate as...
	(<frint_pattern><mode>2): ...this.
	(lceil<su_optab><mode><mode>2, lfloor<su_optab><mode><mode>2)
	(lround<su_optab><mode><mode>2)
	(lrint<su_optab><mode><mode>2): Consolidate as...
	(l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): ... this.
	* config/aarch64/iterators.md (fcvt_target): New.
	(FCVT_TARGET): Likewise.
	(FRINT): Likewise.
	(FCVT): Likewise.
	(frint_pattern): Likewise.
	(frint_suffix): Likewise.
	(fcvt_pattern): Likewise.

gcc/testsuite/

	* gcc.dg/vect/vect-rounding-btrunc.c: New test.
	* gcc.dg/vect/vect-rounding-btruncf.c: Likewise.
	* gcc.dg/vect/vect-rounding-ceil.c: Likewise.
	* gcc.dg/vect/vect-rounding-ceilf.c: Likewise.
	* gcc.dg/vect/vect-rounding-floor.c: Likewise.
	* gcc.dg/vect/vect-rounding-floorf.c: Likewise.
	* gcc.dg/vect/vect-rounding-lceil.c: Likewise.
	* gcc.dg/vect/vect-rounding-lfloor.c: Likewise.
	* gcc.dg/vect/vect-rounding-nearbyint.c: Likewise.
	* gcc.dg/vect/vect-rounding-nearbyintf.c: Likewise.
	* gcc.dg/vect/vect-rounding-round.c: Likewise.
	* gcc.dg/vect/vect-rounding-roundf.c: Likewise.
	* target-supports.exp
	(check_effective_target_vect_call_btrunc): New.
	(check_effective_target_vect_call_btruncf): Likewise.
	(check_effective_target_vect_call_ceil): Likewise.
	(check_effective_target_vect_call_ceilf): Likewise.
	(check_effective_target_vect_call_floor): Likewise.
	(check_effective_target_vect_call_floorf): Likewise.
	(check_effective_target_vect_call_lceil): Likewise.
	(check_effective_target_vect_call_lfloor): Likewise.
	(check_effective_target_vect_call_nearbyint): Likewise.
	(check_effective_target_vect_call_nearbyintf): Likewise.
	(check_effective_target_vect_call_round): Likewise.
	(check_effective_target_vect_call_roundf): Likewise.



Added:
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-btrunc.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-btruncf.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-ceil.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-ceilf.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-floor.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-floorf.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-lceil.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-lfloor.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-nearbyint.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-nearbyintf.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-round.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-rounding-roundf.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-builtins.c
    trunk/gcc/config/aarch64/aarch64-protos.h
    trunk/gcc/config/aarch64/aarch64-simd-builtins.def
    trunk/gcc/config/aarch64/aarch64-simd.md
    trunk/gcc/config/aarch64/aarch64.c
    trunk/gcc/config/aarch64/aarch64.md
    trunk/gcc/config/aarch64/iterators.md
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/target-supports.exp



More information about the Gcc-cvs mailing list