neon.md (vec_shr_<mode>, [...]): Disable in big-endian mode.
authorJulian Brown <julian@codesourcery.com>
Fri, 8 Jul 2011 17:30:43 +0000 (17:30 +0000)
committerJulian Brown <jules@gcc.gnu.org>
Fri, 8 Jul 2011 17:30:43 +0000 (17:30 +0000)
commit0094f21b6186ed0ba4d580889164fb7ffd15b51f
tree4a47a99f3d86585455aa3623bed18af2e1685eff
parentf8501f04ea07e18d68979c129d1ff2b1001e918d
neon.md (vec_shr_<mode>, [...]): Disable in big-endian mode.

gcc/
* config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
big-endian mode.
(reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
(reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
(neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
(vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
(neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
(neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
(vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
registers in big-endian mode.

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_arm_little_endian): New.
(check_effective_target_vect_pack_trunc): Use above.
(check_effective_target_vect_unpack): Likewise.
(check_effective_target_vect_element_align): Test
check_effective_target_arm_vect_no_misalign for ARM.

From-SVN: r176050
gcc/ChangeLog
gcc/config/arm/neon.md
gcc/testsuite/ChangeLog
gcc/testsuite/lib/target-supports.exp