i386: Introduce V2QImode vectorized shifts [PR103861]
commit7a7d8c3f6167fd45658ddbfa32adcfd2acc98eb4
authorUros Bizjak <ubizjak@gmail.com>
Thu, 13 Jan 2022 19:48:18 +0000 (13 20:48 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Thu, 13 Jan 2022 19:49:01 +0000 (13 20:49 +0100)
treeb03bb71ad0fcec2e37e4a3f7aa8ac094c9e365e6
parentb0e5163960eceab701a1a25dfa049e394fe5b3de
i386: Introduce V2QImode vectorized shifts [PR103861]

Add V2QImode shift operations and split them to synthesized
double HI/LO QImode operations with integer registers.

Also robustify arithmetic split patterns.

2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:

PR target/103861
* config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
(*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
* config/i386/mmx.md (<any_shift:insn>v2qi):
New insn_and_split pattern.

gcc/testsuite/ChangeLog:

PR target/103861
* gcc.target/i386/pr103861.c (shl,ashr,lshr): New tests.
gcc/config/i386/i386.md
gcc/config/i386/mmx.md
gcc/testsuite/gcc.target/i386/pr103861.c