\f
;; Conversions between float and double.
-(define_insn "extendsfdf2"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=fm,f")
- (float_extend:DF
- (match_operand:SF 1 "nonimmediate_operand" "f,fm")))]
+(define_expand "extendsfdf2"
+ [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "")
+ (float_extend:DF
+ (match_operand:SF 1 "nonimmediate_operand" "")))
+ (clobber (match_dup 2))
+ (clobber (match_dup 3))])]
"TARGET_80387"
+ "
+{
+ if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
+ operands[1] = force_reg (SFmode, operands[1]);
+
+ operands[2] = assign_386_stack_local (SFmode, 0);
+ operands[3] = assign_386_stack_local (DFmode, 0);
+}")
+
+(define_insn ""
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,m,!f,!*r")
+ (float_extend:DF
+ (match_operand:SF 1 "nonimmediate_operand" "fm,f,*r,f")))
+ (clobber (match_operand:SF 2 "memory_operand" "m,m,m,m"))
+ (clobber (match_operand:DF 3 "memory_operand" "m,m,m,o"))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
+ "#")
+
+(define_split
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float_extend:DF (match_operand:SF 1 "register_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:DF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[1])"
+ [(set (match_dup 2)
+ (match_dup 1))
+ (set (match_dup 0)
+ (float_extend:DF (match_dup 2)))]
+ "")
+
+(define_split
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float_extend:DF (match_operand:SF 1 "register_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:DF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[0])"
+ [(set (match_dup 3)
+ (float_extend:DF (match_dup 1)))
+ (set (match_dup 0)
+ (match_dup 3))]
+ "")
+
+(define_split
+ [(set (match_operand:DF 0 "nonimmediate_operand" "")
+ (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:DF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed"
+ [(set (match_dup 0)
+ (float_extend:DF (match_dup 1)))]
+ "")
+
+(define_insn ""
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,m")
+ (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
"*
{
int stack_top_dies = find_regno_note (insn, REG_DEAD, FIRST_STACK_REG) != 0;
- if (NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
+ if (! STACK_TOP_P (operands[0]) && ! STACK_TOP_P (operands[1]))
+ abort ();
- if (NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
+ if (STACK_TOP_P (operands[0]) && STACK_TOP_P (operands[1]))
+ return \"\";
if (STACK_TOP_P (operands[0]))
return AS1 (fld%z1,%y1);
- if (GET_CODE (operands[0]) == MEM)
- {
- if (stack_top_dies)
- return AS1 (fstp%z0,%y0);
- else
- return AS1 (fst%z0,%y0);
- }
+ if (stack_top_dies)
+ return AS1 (fstp%z0,%y0);
+ else
+ return AS1 (fst%z0,%y0);
+}"
+ [(set_attr "type" "fld,fpop")])
+
+(define_expand "extenddfxf2"
+ [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
+ (float_extend:XF
+ (match_operand:DF 1 "nonimmediate_operand" "")))
+ (clobber (match_dup 2))
+ (clobber (match_dup 3))])]
+ "TARGET_80387"
+ "
+{
+ if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
+ operands[1] = force_reg (DFmode, operands[1]);
- abort ();
+ operands[2] = assign_386_stack_local (DFmode, 0);
+ operands[3] = assign_386_stack_local (XFmode, 0);
}")
-(define_insn "extenddfxf2"
- [(set (match_operand:XF 0 "nonimmediate_operand" "=fm,f,f,!*r")
+(define_insn ""
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,!f,!*r")
(float_extend:XF
- (match_operand:DF 1 "nonimmediate_operand" "f,fm,!*r,f")))]
- "TARGET_80387"
+ (match_operand:DF 1 "nonimmediate_operand" "fm,f,*r,f")))
+ (clobber (match_operand:DF 2 "memory_operand" "m,m,o,m"))
+ (clobber (match_operand:XF 3 "memory_operand" "m,m,m,o"))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
+ "#")
+
+(define_split
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float_extend:XF (match_operand:DF 1 "register_operand" "")))
+ (clobber (match_operand:DF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[1])"
+ [(set (match_dup 2)
+ (match_dup 1))
+ (set (match_dup 0)
+ (float_extend:XF (match_dup 2)))]
+ "")
+
+(define_split
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float_extend:XF (match_operand:DF 1 "register_operand" "")))
+ (clobber (match_operand:DF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[0])"
+ [(set (match_dup 3)
+ (float_extend:XF (match_dup 1)))
+ (set (match_dup 0)
+ (match_dup 3))]
+ "")
+
+(define_split
+ [(set (match_operand:XF 0 "nonimmediate_operand" "")
+ (float_extend:XF (match_operand:DF 1 "nonimmediate_operand" "")))
+ (clobber (match_operand:DF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed"
+ [(set (match_dup 0)
+ (float_extend:XF (match_dup 1)))]
+ "")
+
+(define_insn ""
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
+ (float_extend:XF (match_operand:DF 1 "nonimmediate_operand" "fm,f")))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
"*
{
int stack_top_dies = find_regno_note (insn, REG_DEAD, FIRST_STACK_REG) != 0;
- if (NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
+ if (! STACK_TOP_P (operands[0]) && ! STACK_TOP_P (operands[1]))
+ abort ();
- if (NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
+ if (STACK_TOP_P (operands[0]) && STACK_TOP_P (operands[1]))
+ return \"\";
if (STACK_TOP_P (operands[0]))
return AS1 (fld%z1,%y1);
- if (GET_CODE (operands[0]) == MEM)
- {
- output_asm_insn (AS1 (fstp%z0,%y0), operands);
- if (! stack_top_dies)
- return AS1 (fld%z0,%y0);
- RET;
- }
+ if (stack_top_dies || GET_CODE (operands[0]) == MEM)
+ output_asm_insn (AS1 (fstp%z0,%y0), operands);
+ else
+ return AS1 (fst%z0,%y0);
- abort ();
+ if (! stack_top_dies)
+ return AS1 (fld%z0,%y0);
+
+ return \"\";
+}"
+ [(set_attr "type" "fld,fpop")])
+
+(define_expand "extendsfxf2"
+ [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
+ (float_extend:XF
+ (match_operand:SF 1 "nonimmediate_operand" "")))
+ (clobber (match_dup 2))
+ (clobber (match_dup 3))])]
+ "TARGET_80387"
+ "
+{
+ if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
+ operands[1] = force_reg (SFmode, operands[1]);
+
+ operands[2] = assign_386_stack_local (SFmode, 0);
+ operands[3] = assign_386_stack_local (XFmode, 0);
}")
-(define_insn "extendsfxf2"
- [(set (match_operand:XF 0 "nonimmediate_operand" "=fm,f,f,!*r")
+(define_insn ""
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,!f,!*r")
(float_extend:XF
- (match_operand:SF 1 "nonimmediate_operand" "f,fm,!*r,f")))]
- "TARGET_80387"
+ (match_operand:SF 1 "nonimmediate_operand" "fm,f,*r,f")))
+ (clobber (match_operand:SF 2 "memory_operand" "m,m,m,m"))
+ (clobber (match_operand:XF 3 "memory_operand" "m,m,m,o"))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
+ "#")
+
+(define_split
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float_extend:XF (match_operand:SF 1 "register_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[1])"
+ [(set (match_dup 2)
+ (match_dup 1))
+ (set (match_dup 0)
+ (float_extend:XF (match_dup 2)))]
+ "")
+
+(define_split
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float_extend:XF (match_operand:SF 1 "register_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed && NON_STACK_REG_P (operands[0])"
+ [(set (match_dup 3)
+ (float_extend:XF (match_dup 1)))
+ (set (match_dup 0)
+ (match_dup 3))]
+ "")
+
+(define_split
+ [(set (match_operand:XF 0 "nonimmediate_operand" "")
+ (float_extend:XF (match_operand:SF 1 "nonimmediate_operand" "")))
+ (clobber (match_operand:SF 2 "memory_operand" ""))
+ (clobber (match_operand:XF 3 "memory_operand" ""))]
+ "TARGET_80387 && reload_completed"
+ [(set (match_dup 0)
+ (float_extend:XF (match_dup 1)))]
+ "")
+
+(define_insn ""
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
+ (float_extend:XF
+ (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]
+ "TARGET_80387 && (GET_CODE (operands[0]) != MEM
+ || GET_CODE (operands[1]) != MEM)"
"*
{
int stack_top_dies = find_regno_note (insn, REG_DEAD, FIRST_STACK_REG) != 0;
- if (NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
+ if (! STACK_TOP_P (operands[0]) && ! STACK_TOP_P (operands[1]))
+ abort ();
- if (NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
+ if (STACK_TOP_P (operands[0]) && STACK_TOP_P (operands[1]))
+ return \"\";
if (STACK_TOP_P (operands[0]))
return AS1 (fld%z1,%y1);
- if (GET_CODE (operands[0]) == MEM)
- {
- output_asm_insn (AS1 (fstp%z0,%y0), operands);
- if (! stack_top_dies)
- return AS1 (fld%z0,%y0);
- RET;
- }
+ if (stack_top_dies || GET_CODE (operands[0]) == MEM)
+ output_asm_insn (AS1 (fstp%z0,%y0), operands);
+ else
+ return AS1 (fst%z0,%y0);
- abort ();
-}")
+ if (! stack_top_dies)
+ return AS1 (fld%z0,%y0);
+
+ return \"\";
+}"
+ [(set_attr "type" "fld,fpop")])
(define_expand "truncdfsf2"
[(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "")
}"
[(set_attr "type" "fpop")])
\f
-;; The 387 requires that the stack top dies after converting to DImode.
-
-;; Represent an unsigned conversion from SImode to MODE_FLOAT by first
-;; doing a signed conversion to DImode, and then taking just the low
-;; part.
-
-(define_expand "fixuns_truncxfsi2"
- [(set (match_dup 4)
- (match_operand:XF 1 "register_operand" ""))
- (parallel [(set (match_dup 2)
- (fix:DI (fix:XF (match_dup 4))))
- (clobber (match_dup 4))
- (clobber (match_dup 5))
- (clobber (match_dup 6))
- (clobber (match_scratch:SI 7 ""))])
- (set (match_operand:SI 0 "general_operand" "")
- (match_dup 3))]
- "TARGET_80387"
- "
-{
- operands[2] = gen_reg_rtx (DImode);
- operands[3] = gen_lowpart (SImode, operands[2]);
- operands[4] = gen_reg_rtx (XFmode);
- operands[5] = (rtx) assign_386_stack_local (SImode, 0);
- operands[6] = (rtx) assign_386_stack_local (DImode, 1);
-}")
-
-(define_expand "fixuns_truncdfsi2"
- [(set (match_dup 4)
- (match_operand:DF 1 "register_operand" ""))
- (parallel [(set (match_dup 2)
- (fix:DI (fix:DF (match_dup 4))))
- (clobber (match_dup 4))
- (clobber (match_dup 5))
- (clobber (match_dup 6))
- (clobber (match_scratch:SI 7 ""))])
- (set (match_operand:SI 0 "general_operand" "")
- (match_dup 3))]
- "TARGET_80387"
- "
-{
- operands[2] = gen_reg_rtx (DImode);
- operands[3] = gen_lowpart (SImode, operands[2]);
- operands[4] = gen_reg_rtx (DFmode);
- operands[5] = (rtx) assign_386_stack_local (SImode, 0);
- operands[6] = (rtx) assign_386_stack_local (DImode, 1);
-}")
-
-(define_expand "fixuns_truncsfsi2"
- [(set (match_dup 4)
- (match_operand:SF 1 "register_operand" ""))
- (parallel [(set (match_dup 2)
- (fix:DI (fix:SF (match_dup 4))))
- (clobber (match_dup 4))
- (clobber (match_dup 5))
- (clobber (match_dup 6))
- (clobber (match_scratch:SI 7 ""))])
- (set (match_operand:SI 0 "general_operand" "")
- (match_dup 3))]
- "TARGET_80387"
- "
-{
- operands[2] = gen_reg_rtx (DImode);
- operands[3] = gen_lowpart (SImode, operands[2]);
- operands[4] = gen_reg_rtx (SFmode);
- operands[5] = (rtx) assign_386_stack_local (SImode, 0);
- operands[6] = (rtx) assign_386_stack_local (DImode, 1);
-}")
-
;; Signed conversion to DImode.
(define_expand "fix_truncxfdi2"
"#")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f")
- (float:SF (match_operand:SI 1 "memory_operand" "m")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:SF 0 "register_operand" "")
+ (float:SF (match_operand:SI 1 "memory_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:SF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f")
- (float:SF (match_operand:SI 1 "register_operand" "r")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:SF 0 "register_operand" "")
+ (float:SF (match_operand:SI 1 "register_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f")
- (float:SF (match_operand:DI 1 "memory_operand" "m")))
- (clobber (match_operand:DI 2 "memory_operand" "m"))]
+ [(set (match_operand:SF 0 "register_operand" "")
+ (float:SF (match_operand:DI 1 "memory_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:SF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f")
- (float:SF (match_operand:DI 1 "register_operand" "r")))
- (clobber (match_operand:DI 2 "memory_operand" "o"))]
+ [(set (match_operand:SF 0 "register_operand" "")
+ (float:SF (match_operand:DI 1 "register_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f")
- (float:DF (match_operand:SI 1 "memory_operand" "m")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float:DF (match_operand:SI 1 "memory_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:DF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f")
- (float:DF (match_operand:SI 1 "register_operand" "r")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float:DF (match_operand:SI 1 "register_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f")
- (float:DF (match_operand:DI 1 "memory_operand" "m")))
- (clobber (match_operand:DI 2 "memory_operand" "m"))]
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float:DF (match_operand:DI 1 "memory_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:DF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f")
- (float:DF (match_operand:DI 1 "register_operand" "r")))
- (clobber (match_operand:DI 2 "memory_operand" "o"))]
+ [(set (match_operand:DF 0 "register_operand" "")
+ (float:DF (match_operand:DI 1 "register_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f")
- (float:XF (match_operand:SI 1 "memory_operand" "m")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float:XF (match_operand:SI 1 "memory_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:XF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f")
- (float:XF (match_operand:SI 1 "register_operand" "r")))
- (clobber (match_operand:SI 2 "memory_operand" "m"))]
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float:XF (match_operand:SI 1 "register_operand" "")))
+ (clobber (match_operand:SI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f")
- (float:XF (match_operand:DI 1 "memory_operand" "m")))
- (clobber (match_operand:DI 2 "memory_operand" "m"))]
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float:XF (match_operand:DI 1 "memory_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 0)
(float:XF (match_dup 1)))]
"")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f")
- (float:XF (match_operand:DI 1 "register_operand" "r")))
- (clobber (match_operand:DI 2 "memory_operand" "o"))]
+ [(set (match_operand:XF 0 "register_operand" "")
+ (float:XF (match_operand:DI 1 "register_operand" "")))
+ (clobber (match_operand:DI 2 "memory_operand" ""))]
"TARGET_80387 && reload_completed"
[(set (match_dup 2)
(match_dup 1))
"#")
(define_split
- [(set (match_operand:SI 0 "register_operand" "=r,r")
+ [(set (match_operand:SI 0 "register_operand" "")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:SI 3 "nonimmediate_operand" "rm,0")
- (match_operand:SI 4 "nonimmediate_operand" "0,rm")))]
+ (match_operand:SI 3 "nonimmediate_operand" "")
+ (match_operand:SI 4 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
"")
(define_split
- [(set (match_operand:SI 0 "register_operand" "=r,r")
+ [(set (match_operand:SI 0 "register_operand" "")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:SI 4 "nonimmediate_operand" "rm,0")
- (match_operand:SI 5 "nonimmediate_operand" "0,rm")))]
+ (match_operand:SI 4 "nonimmediate_operand" "")
+ (match_operand:SI 5 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
"#")
(define_split
- [(set (match_operand:HI 0 "register_operand" "=r,r")
+ [(set (match_operand:HI 0 "register_operand" "")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:HI 3 "nonimmediate_operand" "rm,0")
- (match_operand:HI 4 "nonimmediate_operand" "0,rm")))]
+ (match_operand:HI 3 "nonimmediate_operand" "")
+ (match_operand:HI 4 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
"")
(define_split
- [(set (match_operand:HI 0 "register_operand" "=r,r")
+ [(set (match_operand:HI 0 "register_operand" "")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:HI 4 "nonimmediate_operand" "rm,0")
- (match_operand:HI 5 "nonimmediate_operand" "0,rm")))]
+ (match_operand:HI 4 "nonimmediate_operand" "")
+ (match_operand:HI 5 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(compare (match_dup 2) (match_dup 3)))
"#")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f,f")
+ [(set (match_operand:SF 0 "register_operand" "")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:SF 3 "register_operand" "f,0")
- (match_operand:SF 4 "register_operand" "0,f")))]
+ (match_operand:SF 3 "register_operand" "")
+ (match_operand:SF 4 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
"")
(define_split
- [(set (match_operand:SF 0 "register_operand" "=f,f")
+ [(set (match_operand:SF 0 "register_operand" "")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:SF 4 "register_operand" "f,0")
- (match_operand:SF 5 "register_operand" "0,f")))]
+ (match_operand:SF 4 "register_operand" "")
+ (match_operand:SF 5 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
"#")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f,f")
+ [(set (match_operand:DF 0 "register_operand" "")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:DF 3 "register_operand" "f,0")
- (match_operand:DF 4 "register_operand" "0,f")))]
+ (match_operand:DF 3 "register_operand" "")
+ (match_operand:DF 4 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
"")
(define_split
- [(set (match_operand:DF 0 "register_operand" "=f,f")
+ [(set (match_operand:DF 0 "register_operand" "")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:DF 4 "register_operand" "f,0")
- (match_operand:DF 5 "register_operand" "0,f")))]
+ (match_operand:DF 4 "register_operand" "")
+ (match_operand:DF 5 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
"#")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f,f")
+ [(set (match_operand:XF 0 "register_operand" "")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:XF 3 "register_operand" "f,0")
- (match_operand:XF 4 "register_operand" "0,f")))]
+ (match_operand:XF 3 "register_operand" "")
+ (match_operand:XF 4 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
"")
(define_split
- [(set (match_operand:XF 0 "register_operand" "=f,f")
+ [(set (match_operand:XF 0 "register_operand" "")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:XF 4 "register_operand" "f,0")
- (match_operand:XF 5 "register_operand" "0,f")))]
+ (match_operand:XF 4 "register_operand" "")
+ (match_operand:XF 5 "register_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
"#")
(define_split
- [(set (match_operand:DI 0 "register_operand" "=&r,&r")
+ [(set (match_operand:DI 0 "register_operand" "")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
- (match_operand:DI 3 "nonimmediate_operand" "ro,0")
- (match_operand:DI 4 "nonimmediate_operand" "0,ro")))]
+ (match_operand:DI 3 "nonimmediate_operand" "")
+ (match_operand:DI 4 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
split_di (&operands[4], 1, &operands[9], &operands[10]);")
(define_split
- [(set (match_operand:DI 0 "register_operand" "=&r,&r")
+ [(set (match_operand:DI 0 "register_operand" "")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
- (match_operand:DI 4 "nonimmediate_operand" "ro,0")
- (match_operand:DI 5 "nonimmediate_operand" "0,ro")))]
+ (match_operand:DI 4 "nonimmediate_operand" "")
+ (match_operand:DI 5 "nonimmediate_operand" "")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 6)