]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Add v<any_shift:insn>v4qi3 expander
authorUros Bizjak <ubizjak@gmail.com>
Wed, 24 May 2023 14:17:55 +0000 (16:17 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Wed, 24 May 2023 14:18:32 +0000 (16:18 +0200)
commitbd99d7b3ca442390074377a3c0caad59df560eb5
treebe3e181c8517d9b7b3732bbc7e5ea6335b1c4c1c
parentb30ab0dcf9db2ac6d81fb3743add1fbfa0d18f6e
i386: Add v<any_shift:insn>v4qi3 expander

Also, move v<any_shift:insn>v8qi3 expander to a better place and enable
it with TARGET_MMX_WITH_SSE.  Remove handling of V8QImode from
ix86_expand_vecop_qihi2 since all partial QI->HI vector modes expand
via ix86_expand_vecop_qihi_partial.

gcc/ChangeLog:

* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
Remove handling of V8QImode.
* config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
Call ix86_expand_vecop_qihi_partial.  Enable for TARGET_MMX_WITH_SSE.
(v<insn>v4qi3): Ditto.
* config/i386/sse.md (v<insn>v8qi3): Remove.

gcc/testsuite/ChangeLog:

* gcc.target/i386/vect-shiftv4qi.c (dg-options):
Remove -ftree-vectorize.
* gcc.target/i386/vect-shiftv8qi.c (dg-options): Ditto.
* gcc.target/i386/vect-vshiftv4qi.c: New test.
* gcc.target/i386/vect-vshiftv8qi.c: New test.
gcc/config/i386/i386-expand.cc
gcc/config/i386/mmx.md
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/vect-shiftv4qi.c
gcc/testsuite/gcc.target/i386/vect-shiftv8qi.c
gcc/testsuite/gcc.target/i386/vect-vshiftv4qi.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-vshiftv8qi.c [new file with mode: 0644]