aarch64: Add movprfx patterns alternatives

Programming / Compilers / GCC - rth [138bc75d-0d04-0410-961f-82ee72b054a4] - 2 July 2018 15:29 EDT

- config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): Remove.
- config/aarch64/aarch64-sve.md (cond_): Allow aarch64_simd_reg_or_zero as select operand; remove the aarch64_sve_prepare_conditional_op call. (cond_): Likewise. (cond_): Likewise. (*cond__z): New pattern. (*cond__z): New pattern. (*cond__z): New pattern. (*cond__any): New pattern. (*cond__any): New pattern. (*cond__any): New pattern and a splitters to match all of the *_any patterns.
- config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New.

- config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove. (SVE_COND_FP_BINARY_REV): Remove. (sve_int_op_rev, sve_fp_op_rev): New.
- config/aarch64/aarch64-sve.md (*cond__0): New. (*cond__0): New. (*cond__0): New. (*cond__2): Rename, add movprfx alternative. (*cond__2): Similarly. (*cond__2): Similarly. (*cond__3): Similarly; use sve_int_op_rev. (*cond__3): Similarly. (*cond__3): Similarly; use sve_fp_op_rev.

- config/aarch64/aarch64-sve.md (cond_): Remove match_dup 1 from the inner unspec. (*cond_): Likewise.

- config/aarch64/aarch64.md (movprfx): New attr. (length): Default movprfx to 8.
- config/aarch64/aarch64-sve.md (*mul3): Add movprfx alt. (*madd, *msubmul3_highpart): Likewise. (*3): Likewise. (*v3): Likewise. (*3): Likewise. (*3): Likewise. (*fma4, *fnma4): Likewise. (*fms4, *fnms4): Likewise. (*div4): Likewise.

83d1ca630cf aarch64: Add movprfx patterns alternatives
gcc/ChangeLog | 48 ++++
gcc/config/aarch64/aarch64-protos.h | 1 -
gcc/config/aarch64/aarch64-sve.md | 480 ++++++++++++++++++++++++++----------
gcc/config/aarch64/aarch64.c | 48 ----
gcc/config/aarch64/aarch64.md | 11 +-
gcc/config/aarch64/iterators.md | 26 +-
gcc/config/aarch64/predicates.md | 3 +
7 files changed, 430 insertions(+), 187 deletions(-)

Upstream: gcc.gnu.org


  • Share