[AArch64] Add SVE mul_highpart patterns

Programming / Compilers / GCC - rsandifo [138bc75d-0d04-0410-961f-82ee72b054a4] - 13 March 2018 15:12 EDT

One advantage of the new permute handling compared to the old way is that we can now easily take advantage of the vectoriser's divmod patterns for SVE.

2018-03-13 Richard Sandiford

gcc/
- config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) (UNSPEC_UMUL_HIGHPART): New constants. (MUL_HIGHPART): New int iteraor. (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART.
- config/aarch64/aarch64-sve.md (mul3_highpart): New define_expand. (*mul3_highpart): New define_insn.

gcc/testsuite/
- gcc.target/aarch64/sve/mul_highpart_1.c: New test.
- gcc.target/aarch64/sve/mul_highpart_1_run.c: Likewise.

dea784dfca3 [AArch64] Add SVE mul_highpart patterns
gcc/ChangeLog | 10 ++++++++
gcc/config/aarch64/aarch64-sve.md | 28 +++++++++++++++++++++
gcc/config/aarch64/iterators.md | 8 +++++-
gcc/testsuite/ChangeLog | 5 ++++
.../gcc.target/aarch64/sve/mul_highpart_1.c | 25 +++++++++++++++++++
.../gcc.target/aarch64/sve/mul_highpart_1_run.c | 29 ++++++++++++++++++++++
6 files changed, 104 insertions(+), 1 deletion(-)

Upstream: gcc.gnu.org


  • Share