[ARM] Remove remaining Neon DImode support
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 22 Aug 2019 15:19:58 +0000 (15:19 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 22 Aug 2019 15:19:58 +0000 (15:19 +0000)
commitef27f40f488c590d796036ff9ad0ee572d8d8bfe
treee646144acbbf0a85890212faf40b4e5fcfa29c3c
parent5c7c6c5fc13503b2b71aee34d57370ae03531809
[ARM] Remove remaining Neon DImode support

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.

From-SVN: r274825
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/neon.md