i386: Introduce V2QImode minmax, abs and uavgv2hi3_ceil [PR103861]
commitc166632bd22d7da66354121502019fc9c92ef07f
authorUros Bizjak <ubizjak@gmail.com>
Wed, 5 Jan 2022 22:16:34 +0000 (5 23:16 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Wed, 5 Jan 2022 22:17:25 +0000 (5 23:17 +0100)
tree655eb9e07f2ae681402f495219989279080ad060
parente3ef832a9e8d6a950a439e34e576eb4cb202dc48
i386: Introduce V2QImode minmax, abs and uavgv2hi3_ceil [PR103861]

Add V2QImode minmax, abs and uavxv2qi3_ceil operations with SSE registers.

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

gcc/ChangeLog:

PR target/103861
* config/i386/mmx.md (VI_16_32): New mode iterator.
(VI1_16_32): Ditto.
(mmxvecsize): Handle V2QI mode.
(<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
Use VI1_16_32 mode iterator.
(<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
Use VI1_16_32 mode iterator.
(abs<mode>2): Use VI_16_32 mode iterator.
(uavgv2qi3_ceil): New insn pattern.

gcc/testsuite/ChangeLog:

PR target/103861
* gcc.target/i386/pr103861-3.c: New test.
* g++.dg/vect/slp-pr98855.cc (dg-final): Check that
no vectorization using SLP was performed.
gcc/config/i386/mmx.md
gcc/testsuite/g++.dg/vect/slp-pr98855.cc
gcc/testsuite/gcc.target/i386/pr103861-3.c [new file with mode: 0644]