This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: SSE scalar fp comparison patterns
On Tue, Feb 13, 2001 at 03:14:28PM +0100, Jan Hubicka wrote:
> (define_insn "*cmpfp_iu"
> [(set (reg:CCFPU 17)
> (compare:CCFPU (match_operand 0 "register_operand" "f")
> (match_operand 1 "register_operand" "f")))]
> "TARGET_80387 && TARGET_CMOVE
> && FLOAT_MODE_P (GET_MODE (operands[0]))
> - && GET_MODE (operands[0]) == GET_MODE (operands[1])"
> + && GET_MODE (operands[0]) == GET_MODE (operands[0])"
Huh?
> + (define_insn "*cmpfp_iu_sse"
> + (define_insn "*cmpfp_iu_sse_only"
At some future point it might be a good idea to pull the same trick
with "f" as you did with "x" -- make it evaluate to NO_REGS when
!TARGET_80387. Then we can combine some of these patterns.
> + (define_insn "*fp_jcc_1_sse_only"
> + [(set (pc)
> + (if_then_else (match_operator 0 "comparison_operator"
> + [(match_operand 1 "register_operand" "f#x,x#f")
> + (match_operand 2 "nonimmediate_operand" "f#x,xm#f")])
Forgot to remove "f" alternatives.
> + (define_insn "*fp_jcc_2_sse"
For this one you don't provide an sse_only pattern?
Ok with fixes.
r~