2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
commit5377305752ef1cfe0ad92a4dd9f165f21aac3c4b
authorclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Jan 2016 15:17:00 +0000 (26 15:17 +0000)
committerclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Jan 2016 15:17:00 +0000 (26 15:17 +0000)
tree61dd7efa0aae0cd608fe8a59bc94c042efb4bf12
parent442a556f884dd587b3b2cf74509bca6a5d4bee56
2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
PR target/68620
* config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
* config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
New helper macros.
(vget_lane_f16): Handle big-endian.
(vgetq_lane_f16): Likewise.
(vset_lane_f16): Likewise.
(vsetq_lane_f16): Likewise.
* config/arm/iterators.md (VQXMOV): Add V8HF.
(VDQ): Add V4HF and V8HF.
(V_reg): Handle V4HF and V8HF.
(Is_float_mode): Likewise.
* config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
neon_vdup_nv8hf): New patterns.
(vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
Use VD_LANE iterator.
(neon_vld1_dup<mode>): Use VQ2 iterator.

testsuite/
PR target/68620
* gcc.target/arm/pr68620.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232832 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm_neon.h
gcc/config/arm/iterators.md
gcc/config/arm/neon.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr68620.c [new file with mode: 0644]