http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50482
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2011-09-22
Target Milestone|--- |4.7.0
Ever Confirmed|0 |1
--- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2011-09-22 11:54:40
UTC ---
Confirmed with -O3 -msse4, caused by recent change.
Untested patch:
Index: i386.c
===================================================================
--- i386.c (revision 179076)
+++ i386.c (working copy)
@@ -18911,6 +18911,9 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_t
{
rtx (*gen) (rtx, rtx, rtx, rtx) = NULL;
+ if (!nonimmediate_operand (op_true, mode))
+ op_true = force_reg (mode, op_true);
+
op_false = force_reg (mode, op_false);
switch (mode)