aarch64: Add missing %z prefixes to LDP/STP patterns
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 5 Aug 2020 13:49:32 +0000 (14:49 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 5 Aug 2020 13:49:31 +0000 (14:49 +0100)
commit2c272091c09298eea02b6bb3b3ffd95db9ea505b
tree8cf28e742d8fe0384d2d5d9952cb61f0886327df
parent6aec53ee4f75a64cc9c35577e8d785ba2b692270
aarch64: Add missing %z prefixes to LDP/STP patterns

For LDP/STP Q, the memory operand might not be valid for "m",
so we need to use %z<N> instead of %<N> in the asm template.
This patch does that for all Ump LDP/STP patterns, regardless
of whether it's strictly needed.

This is needed to unbreak bootstrap.

2020-08-05  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>)
(load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf)
(store_pair_sw_<SX:mode><SX2:mode>)
(store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf)
(*load_pair_extendsidi2_aarch64)
(*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand.
* config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>)
(vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>)
(vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.md