]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Annotate fcvtn pattern for vec_concat with zeroes
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Sun, 23 Apr 2023 13:44:13 +0000 (14:44 +0100)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Sun, 23 Apr 2023 13:44:13 +0000 (14:44 +0100)
commit7e26fd6bcd39f53bc917f55f8cce6101180c1dcd
tree2f05b9206b2a8d47ec5965239c07be5235aef965
parent3b13c59c835f92b353ef318398e39907cdeec4fa
aarch64: Annotate fcvtn pattern for vec_concat with zeroes

Using the define_substs in aarch64-simd.md this is a straightforward annotation to remove
a redundant fmov insn.

So the codegen goes from:
foo_d:
        fcvtn   v0.2s, v0.2d
        fmov    d0, d0
        ret

to the simple:
foo_d:
        fcvtn   v0.2s, v0.2d
        ret

Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/ChangeLog:

* config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
(aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/float_truncate_zero.c: New test.
gcc/config/aarch64/aarch64-simd.md
gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c [new file with mode: 0644]