===================================================================
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "tree-flow.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -18434,7 +18435,30 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp
{
enum machine_mode mode = GET_MODE (dest);
rtx t2, t3, x;
-
+ rtx mask_true;
+
+ rtvec v;
+ int units, i;
+ enum machine_mode inner;
+
+ units = GET_MODE_NUNITS (mode);
+ inner = GET_MODE_INNER (mode);
+ v = rtvec_alloc (units);
+ for (i = 0; i < units; ++i)
+ RTVEC_ELT (v, i) = gen_rtx_CONST_INT (inner, -1);
+
+ mask_true = gen_rtx_raw_CONST_VECTOR (mode, v);
+
+ fprintf (stderr, "I am here\n");
+ debug_rtx (mask_true);
+ debug_rtx (op_true);
+ if (rtx_equal_p (op_true, mask_true))
+ {
+ fprintf (stderr, "Yes it is\n");
+ emit_insn (gen_rtx_SET (VOIDmode, dest, cmp));
+ return;
+ }
+ else
if (op_false == CONST0_RTX (mode))
{
op_true = force_reg (mode, op_true);