Hi all,

This instalment of the series goes through the vector comparison patterns in 
the backend.
One wart are the int64x1_t comparisons that this patch doesn't touch.
Those are a bit trickier because they have define_insn_and_split mechanisms for 
falling back to
GP reg comparisons after reload and I don't think a simple annotation will 
catch those cases correctly.
Those will need more custom thinking.
As said, this patch doesn't touch those and is a decent straightforward 
improvement on its own.

Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf.
Pushing to trunk.

Thanks,
Kyrill

gcc/ChangeLog:

        PR target/99195
        * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
        (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
        (aarch64_cmtst<mode>): Rename to...
        (aarch64_cmtst<mode><vczle><vczbe>): ... This.
        (*aarch64_cmtst_same_<mode>): Rename to...
        (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
        (*aarch64_cmtstdi): Rename to...
        (*aarch64_cmtstdi<vczle><vczbe>): ... This.
        (aarch64_fac<optab><mode>): Rename to...
        (aarch64_fac<optab><mode><vczle><vczbe>): ... This.

gcc/testsuite/ChangeLog:

        PR target/99195
        * gcc.target/aarch64/simd/pr99195_7.c: New test.

Attachment: vcmpc.patch
Description: vcmpc.patch

Reply via email to