[AArch64_be] Fix vec_select hi/lo mask confusions.
authorJames Greenhalgh <james.greenhalgh@arm.com>
Thu, 31 Jul 2014 15:31:24 +0000 (15:31 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Thu, 31 Jul 2014 15:31:24 +0000 (15:31 +0000)
commit988fa69392bb0edcece6db817ef5a3dfb09907fa
treec06f413cb718bc0d68ffa6007f06a2d0c7f11744
parent08938c896fd1a409bd70218154b7073e81de398e
[AArch64_be] Fix vec_select hi/lo mask confusions.

gcc/

* config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
the generated mask based on BYTES_BIG_ENDIAN.
(aarch64_simd_check_vect_par_cnst_half): New.
* config/aarch64/aarch64-protos.h
(aarch64_simd_check_vect_par_cnst_half): New.
* config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
the check out to aarch64_simd_check_vect_par_cnst_half.
(vect_par_cnst_lo_half): Likewise.
* config/aarch64/aarch64-simd.md
(aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
(move_hi_quad_<mode>): Always generate a low mask.

From-SVN: r213378
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/predicates.md