i386: Implement FP vector compares for V2SFmode [PR98218]
authorUros Bizjak <ubizjak@gmail.com>
Wed, 12 May 2021 06:11:18 +0000 (08:11 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Wed, 12 May 2021 06:15:33 +0000 (08:15 +0200)
commitb1f7fd8a2a5558da1e101de11bb1cdba081ce010
treeca1920e4aafa057a0a10a834023cb00ab162edc0
parent71d38ec80008afdbb9a059253407d80598b765c0
i386: Implement FP vector compares for V2SFmode [PR98218]

Implement FP vector compares for V2SFmode for TARGET_MMX_WITH_SSE.

2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
PR target/98218
* config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
* config/i386/mmx.md (MMXMODE124): New mode iterator.
(V2FI): Ditto.
(mmxintvecmode): New mode attribute.
(mmxintvecmodelower): Ditto.
(*mmx_maskcmpv2sf3_comm): New insn pattern.
(*mmx_maskcmpv2sf3): Ditto.
(vec_cmpv2sfv2si): New expander.
(vcond<V2FI:mode>v2si): Ditto.
(mmx_vlendvps): New insn pattern.
(vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
(vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
(vcond_mask_<mode><mmxintvecmodelower>): Ditto.

gcc/testsuite/

PR target/98218
* g++.target/i386/pr98218-1.C: Ditto.
* gcc.target/i386/pr98218-4.c: New test.

* gcc.target/i386/pr98218-1.c: Correct PR number.
* gcc.target/i386/pr98218-1a.c: Ditto.
* gcc.target/i386/pr98218-2.c: Ditto.
* gcc.target/i386/pr98218-2a.c: Ditto.
* gcc.target/i386/pr98218-3.c: Ditto.
* gcc.target/i386/pr98218-3a.c: Ditto.
gcc/config/i386/i386-expand.c
gcc/config/i386/mmx.md
gcc/testsuite/g++.target/i386/pr98218-1.C [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr98218-1.c
gcc/testsuite/gcc.target/i386/pr98218-1a.c
gcc/testsuite/gcc.target/i386/pr98218-2.c
gcc/testsuite/gcc.target/i386/pr98218-2a.c
gcc/testsuite/gcc.target/i386/pr98218-3.c
gcc/testsuite/gcc.target/i386/pr98218-3a.c
gcc/testsuite/gcc.target/i386/pr98218-4.c [new file with mode: 0644]