[AArch64][1/2] Add fmul-by-power-of-2+fcvt optimisation
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 20 Oct 2015 16:01:53 +0000 (16:01 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 20 Oct 2015 16:01:53 +0000 (16:01 +0000)
commit39252973769c869814f7dcbf1b62cf7a90ac1417
treebb19cad6f388747ebddb3109869e2f360f40103e
parent6c27ebdbe81c13d68c4e590a060fd12e6118feb5
[AArch64][1/2] Add fmul-by-power-of-2+fcvt optimisation

* config/aarch64/aarch64.md
(*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
* config/aarch64/aarch64-simd.md
(*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
(aarch64_fpconst_pow_of_2): New function.
(aarch64_vec_fpconst_pow_of_2): Likewise.
* config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
prototype.
(aarch64_vec_fpconst_pow_of_2): Likewise.
* config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
(aarch64_fp_vec_pow2): Likewise.

* gcc.target/aarch64/fmul_fcvt_1.c: New test.
* gcc.target/aarch64/fmul_fcvt_2.c: Likewise.

From-SVN: r229085
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/fmul_fcvt_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/fmul_fcvt_2.c [new file with mode: 0644]