From 55b2de7516de84ee94926fd4466ceb34c49a93c3 Mon Sep 17 00:00:00 2001 From: Uros Bizjak <uros@kss-loka.si> Date: Tue, 30 May 2006 08:12:30 +0200 Subject: [PATCH] re PR target/27790 (Unrecognizable insn with -ftree-vectorize -O1 -msse2) PR target/27790 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 into register for (code == GTU). testsuite/ChangeLog: * gcc.target/i386/pr27790.c: New test. From-SVN: r114229 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 2 ++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr27790.c | 9 +++++++++ 4 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr27790.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 97ec80cda039..1ad4ac82dcb0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-30 Uros Bizjak <uros@kss-loka.si> + + PR target/27790 + * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 + into register for (code == GTU). + 2006-05-29 Roger Sayle <roger@eyesopen.com> PR tree-optimization/24964 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a557c16859cf..8c33150bd783 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11485,6 +11485,8 @@ ix86_expand_int_vcond (rtx operands[]) tricks to turn this into a signed comparison against 0. */ if (code == GTU) { + cop0 = force_reg (mode, cop0); + switch (mode) { case V4SImode: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 37ab802318d3..eedd466c2ca0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-30 Uros Bizjak <uros@kss-loka.si> + + PR target/27790 + * gcc.target/i386/pr27790.c: New test. + 2006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/27757 diff --git a/gcc/testsuite/gcc.target/i386/pr27790.c b/gcc/testsuite/gcc.target/i386/pr27790.c new file mode 100644 index 000000000000..e8986c4158ac --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr27790.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O -ftree-vectorize -msse2" } */ + +void binarize (int npixels, unsigned char *b) +{ + int i; + for (i = 0; i < npixels; i++) + b[i] = (b[i] > 225 ? 0xff : 0); +} -- GitLab