This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r240404 - in /trunk/gcc: ChangeLog config/arm/a...
- From: mwahab at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 23 Sep 2016 09:23:01 -0000
- Subject: r240404 - in /trunk/gcc: ChangeLog config/arm/a...
Author: mwahab
Date: Fri Sep 23 09:23:01 2016
New Revision: 240404
URL: https://gcc.gnu.org/viewcvs?rev=240404&root=gcc&view=rev
Log:
[PATCH 6/17][ARM] Add data processing intrinsics for float16_t.
gcc/
2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
V4HF modes.
(arm_evpc_neon_vtrn): Likewise.
(arm_evpc_neon_vrev): Likewise.
(arm_evpc_neon_vext): Likewise.
* config/arm/arm_neon.h (vbsl_f16): New.
(vbslq_f16): New.
(vdup_n_f16): New.
(vdupq_n_f16): New.
(vdup_lane_f16): New.
(vdupq_lane_f16): New.
(vext_f16): New.
(vextq_f16): New.
(vmov_n_f16): New.
(vmovq_n_f16): New.
(vrev64_f16): New.
(vrev64q_f16): New.
(vtrn_f16): New.
(vtrnq_f16): New.
(vuzp_f16): New.
(vuzpq_f16): New.
(vzip_f16): New.
(vzipq_f16): New.
* config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
(vdup_lane): New (v8hf, v4hf variants).
(vext): New (v8hf, v4hf variants).
(vbsl): New (v8hf, v4hf variants).
* config/arm/iterators.md (VDQWH): New.
(VH): New.
(V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
(Scalar_mul_8_16): Fix white-space.
(Is_d_reg): Add V4HF and V8HF.
* config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
(neon_vdup_lane<mode>): New.
(neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
(*neon_vtrn<mode>_insn): Likewise.
(neon_vzip<mode>_internal): Likewise. Also fix white-space.
(*neon_vzip<mode>_insn): Likewise
(neon_vuzp<mode>_internal): Likewise.
(*neon_vuzp<mode>_insn): Likewise
* config/arm/vec-common.md (vec_perm_const<mode>): New.
testsuite/
2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(FP16_SUPPORTED): New
(expected-hfloat-16x4): Make conditional on __fp16 support.
(expected-hfloat-16x8): Likewise.
(vdup_n_f16): Disable for non-AArch64 targets.
* gcc.target/aarch64/advsimd-intrinsics/vbsl.c: Add __fp16 tests,
conditional on FP16_SUPPORTED.
* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vext.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vrev.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc: Add support
for testing __fp16.
* gcc.target/aarch64/advsimd-intrinsics/vtrn.c: Add __fp16 tests,
conditional on FP16_SUPPORTED.
* gcc.target/aarch64/advsimd-intrinsics/vuzp.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vzip.c: Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm_neon.h
trunk/gcc/config/arm/arm_neon_builtins.def
trunk/gcc/config/arm/iterators.md
trunk/gcc/config/arm/neon.md
trunk/gcc/config/arm/vec-common.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbsl.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vext.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrev.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtrn.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vuzp.c
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vzip.c