aarch64: Fix BE SVE mode punning involving floats
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 15 Jan 2020 16:52:04 +0000 (16:52 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 16 Jan 2020 10:04:48 +0000 (10:04 +0000)
commit5c06093ce90ac3fc1efe89c1897ea19b805cdd3d
tree42d5355024880493bfa3cc3502bcfa2692f5dd27
parentc35a3046247c495509610b50c7a85683d540811a
aarch64: Fix BE SVE mode punning involving floats

The patterns used by aarch64_split_sve_subreg_move only support
integer modes, so if the widest mode is a float, we should get
its integer equivalent.

Fixes gcc.target/aarch64/sel_3.c for big-endian targets.

2020-01-16  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
aarch64_sve_int_mode to each mode.
gcc/ChangeLog
gcc/config/aarch64/aarch64.c