[AArch64_be] Fix vec_select hi/lo mask confusions.
commite71cd51850347d223c30e3356666754f38d267c8
authorjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jul 2014 15:31:24 +0000 (31 15:31 +0000)
committerjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jul 2014 15:31:24 +0000 (31 15:31 +0000)
treec06f413cb718bc0d68ffa6007f06a2d0c7f11744
parentad53da0323537392c0b9f9c20a619d7bd33dd345
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213378 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/predicates.md