diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 97ec80cda0397714cc99be0b7a35b61cb86ceaeb..1ad4ac82dcb0b754d71131efa70538a77e7c47fb 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 a557c16859cf117626e1b1750624290820b9d0b8..8c33150bd783389f0bb60055773cbbc641d82efe 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 37ab802318d30a138191ecb11ed3527467e107c1..eedd466c2ca00d79566759d8665eb2eb0e0e1ddc 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 0000000000000000000000000000000000000000..e8986c4158acbd57eff3a389d8bab13e8aa997fc --- /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); +}