diff options
author | Tamar Christina <tamar.christina@arm.com> | 2024-01-24 15:58:34 +0000 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2024-01-24 15:58:34 +0000 |
commit | dfa17fd3b1a50cab51803e8a63c5c7b7db173523 (patch) | |
tree | 1661c6c500337e264e8b61c35905025414c89131 /gcc/cgraph.cc | |
parent | 306713c953d509720dc394c43c0890548bb0ae07 (diff) | |
download | gcc-dfa17fd3b1a50cab51803e8a63c5c7b7db173523.zip gcc-dfa17fd3b1a50cab51803e8a63c5c7b7db173523.tar.gz gcc-dfa17fd3b1a50cab51803e8a63c5c7b7db173523.tar.bz2 |
AArch64: Fix expansion of Advanced SIMD div and mul using SVE [PR109636]
As suggested in the ticket this replaces the expansion by converting the
Advanced SIMD types to SVE types by simply printing out an SVE register for
these instructions.
This fixes the subreg issues since there are no subregs involved anymore.
gcc/ChangeLog:
PR target/109636
* config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
mulv2di3): Remove.
* config/aarch64/iterators.md (VQDIV): Remove.
(SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
SVE_I_SIMD_DI): New.
(VPRED, sve_lane_con): Add V4SI and V2DI.
* config/aarch64/aarch64-sve.md (<optab><mode>3,
@aarch64_pred_<optab><mode>): Support Advanced SIMD types.
(mul<mode>3): New, split from <optab><mode>3.
(@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
* config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
*aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
SVE_FULL_HSDI_SIMD_DI.
gcc/testsuite/ChangeLog:
PR target/109636
* gcc.target/aarch64/sve/pr109636_1.c: New test.
* gcc.target/aarch64/sve/pr109636_2.c: New test.
* gcc.target/aarch64/sve2/pr109636_1.c: New test.
Diffstat (limited to 'gcc/cgraph.cc')
0 files changed, 0 insertions, 0 deletions