+2012-11-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/54073
+ * config/i386/i386.md (mov<mode>cc): Use comparison_operator
+ instead of ordered_comparison_operator resp.
+ ix86_fp_comparison_operator predicates.
+ * config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
+ or for -m32 DImode comparisons.
+
2012-11-16 Jan Hubicka <jh@suse.cz>
PR tree-optimization/54717
return true;
}
+ if (GET_MODE (op0) == TImode
+ || (GET_MODE (op0) == DImode
+ && !TARGET_64BIT))
+ return false;
+
/* The floating point conditional move instructions don't directly
support conditions resulting from a signed integer comparison. */
(define_expand "mov<mode>cc"
[(set (match_operand:SWIM 0 "register_operand")
- (if_then_else:SWIM (match_operand 1 "ordered_comparison_operator")
+ (if_then_else:SWIM (match_operand 1 "comparison_operator")
(match_operand:SWIM 2 "<general_operand>")
(match_operand:SWIM 3 "<general_operand>")))]
""
(define_expand "mov<mode>cc"
[(set (match_operand:X87MODEF 0 "register_operand")
(if_then_else:X87MODEF
- (match_operand 1 "ix86_fp_comparison_operator")
+ (match_operand 1 "comparison_operator")
(match_operand:X87MODEF 2 "register_operand")
(match_operand:X87MODEF 3 "register_operand")))]
"(TARGET_80387 && TARGET_CMOVE)