[Bug target/88547] missed optimization for vector comparisons
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 21 10:37:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88547
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Dec 21 10:37:11 2018
New Revision: 267322
URL: https://gcc.gnu.org/viewcvs?rev=267322&root=gcc&view=rev
Log:
PR target/88547
* config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize
x > y ? 0 : -1 into min (x, y) == x ? -1 : 0.
* gcc.target/i386/pr88547-1.c: Expect only 2 knotb and 2 knotw
insns instead of 4, check for vpminud, vpminuq and no vpsubd or
vpsubq.
* gcc.target/i386/sse2-pr88547-1.c: New test.
* gcc.target/i386/sse2-pr88547-2.c: New test.
* gcc.target/i386/sse4_1-pr88547-1.c: New test.
* gcc.target/i386/sse4_1-pr88547-2.c: New test.
* gcc.target/i386/avx2-pr88547-1.c: New test.
* gcc.target/i386/avx2-pr88547-2.c: New test.
* gcc.target/i386/avx512f-pr88547-2.c: New test.
* gcc.target/i386/avx512vl-pr88547-1.c: New test.
* gcc.target/i386/avx512vl-pr88547-2.c: New test.
* gcc.target/i386/avx512vl-pr88547-3.c: New test.
* gcc.target/i386/avx512f_cond_move.c (y): Change from unsigned int
array to int array.
Added:
trunk/gcc/testsuite/gcc.target/i386/avx2-pr88547-1.c
trunk/gcc/testsuite/gcc.target/i386/avx2-pr88547-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-3.c
trunk/gcc/testsuite/gcc.target/i386/sse2-pr88547-1.c
trunk/gcc/testsuite/gcc.target/i386/sse2-pr88547-2.c
trunk/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c
trunk/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/avx512f_cond_move.c
trunk/gcc/testsuite/gcc.target/i386/pr88547-1.c
More information about the Gcc-bugs
mailing list