[ARM] Remove remaining Neon DImode support

Programming / Compilers / GCC - wilco [138bc75d-0d04-0410-961f-82ee72b054a4] - 22 August 2019 15:19 EDT

Remove the remaining Neon adddi3, subdi3 and negdi2 patterns. As a result adddi3, subdi3 and negdi2 can now always be expanded early irrespectively of whether Neon is available. Also expand the extenddi patterns at the same time. Several Neon arch attributes are no longer used and removed.

Code generation is improved in all cases, saving another 400-500 instructions from the PR77308 testcase (total improvement is over 1700 instructions with
-mcpu=cortex-a57 -O2).

Bootstrap & regress OK on arm-none-linux-gnueabihf --with-cpu=cortex-a57

gcc/
- config/arm/arm.md (neon_for_64bits): Remove. (avoid_neon_for_64bits): Remove. (arm_adddi3): Always split early. (arm_subdi3): Always split early. (negdi2): Remove Neon expansion. (split zero_extend): Split before reload. (split sign_extend): Split before reload.

def2e672b1d [ARM] Remove remaining Neon DImode support
gcc/ChangeLog | 10 ++++++
gcc/config/arm/arm.md | 90 ++++++++++++--------------------------------------
gcc/config/arm/neon.md | 89 -------------------------------------------------
3 files changed, 32 insertions(+), 157 deletions(-)

Upstream: gcc.gnu.org


  • Share