On 14/03/13 12:49, Tejas Belagod wrote:
Hi,
Attached is a patch that implements the framework necessary for implementing
NEON Intrinsics' builtins in Tree/Gimple rather than RTL. For this it uses the
target hook TARGET_FOLD_BUILTIN and folds all the builtins for NEON Intrinsics
into equivalent trees. This framework is accompanied by an example
implementation of vaddv<q>_f<32, 64> intrinsics using the framework.
Regression tested on aarch64-none-elf. OK for trunk?
Thanks,
Tejas Belagod
ARM.
Changelog:
2013-03-14 Tejas Belagod <tejas.bela...@arm.com>
gcc/
* config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): New.
* config/aarch64/aarch64-protos.h (aarch64_fold_builtin): Declare.
* config/aarch64/aarch64-simd-builtins.def: New entry for reduc_splus.
* config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
* config/aarch64/arm_neon.h (vaddv_f32, vaddvq_f32, vaddvq_f64): New.
testsuite/
* gcc.target/aarch64/vaddv-intrinsic-compile.c: New.
* gcc.target/aarch64/vaddv-intrinsic.c: New.
I think we need to wait for a resolution to this thread:
http://gcc.gnu.org/ml/gcc-patches/2013-03/msg00505.html
before we can take this patch.
/Marcus