[PATCH][AArch64] Stop redundant zero-extension after UMOV when in DI mode
commit00d29b97d9ed9af957f896b8279ae85d2e16deb4
authorSam Tebbs <sam.tebbs@arm.com>
Wed, 1 Aug 2018 10:10:28 +0000 (1 10:10 +0000)
committerSudakshina Das <sudi@gcc.gnu.org>
Wed, 1 Aug 2018 10:10:28 +0000 (1 10:10 +0000)
treeff15f38944d8bdba046eb54e983eb995d16e0557
parent5922dcb5cc82f48862cd42bd84e3c85733cac0ce
[PATCH][AArch64] Stop redundant zero-extension after UMOV when in DI mode

This patch extends the aarch64_get_lane_zero_extendsi instruction
definition to also cover DI mode. This prevents a redundant AND
instruction from being generated due to the pattern failing to be matched.

Committed on behalf of Sam Tebbs.

gcc/
2018-08-01  Sam Tebbs  <sam.tebbs@arm.com>

* config/aarch64/aarch64-simd.md
(*aarch64_get_lane_zero_extendsi<mode>): Rename to...
(*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): ... This and
use GPI iterator instead of SI mode.

gcc/testsuite
2018-08-01  Sam Tebbs  <sam.tebbs@arm.com>

* gcc.target/aarch64/extract_zero_extend.c: New file.

From-SVN: r263200
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/extract_zero_extend.c [new file with mode: 0644]