Hi,
The aarch64_simd_bsl<mode> pattern performs an operation which can
be described in C as:
(a & b) | (~a & c)
Rewriting this in RTL rather than using an UNSPEC allows for
better constant folding.
Regression tested for aarch64-none-elf with no regressions.
OK?
Thanks,
James
---
gcc/
2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
(aarch64_simd_bsl<mode>): Likewise.
* config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.