Commit 49135706 by Richard Sandiford Committed by Richard Sandiford

mips.md (UNSPEC_MOVE_TF_PS): New.

	* config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
	* config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
	UNSPEC rather than an IF_THEN_ELSE.
	* config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
	mips_cond_move_tf_ps by name.

From-SVN: r86714
parent 06a4ab70
2004-08-29 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
* config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
UNSPEC rather than an IF_THEN_ELSE.
* config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
mips_cond_move_tf_ps by name.
2004-08-29 Chao-ying Fu <fu@mips.com> 2004-08-29 Chao-ying Fu <fu@mips.com>
James E Wilson <wilson@specifixinc.com> James E Wilson <wilson@specifixinc.com>
......
...@@ -50,10 +50,10 @@ ...@@ -50,10 +50,10 @@
(define_insn "mips_cond_move_tf_ps" (define_insn "mips_cond_move_tf_ps"
[(set (match_operand:V2SF 0 "register_operand" "=f,f") [(set (match_operand:V2SF 0 "register_operand" "=f,f")
(if_then_else:V2SF (unspec:V2SF [(match_operand:V2SF 1 "register_operand" "f,0")
(eq:CCV2 (match_operand:CCV2 3 "register_operand" "z,z") (const_int 0)) (match_operand:V2SF 2 "register_operand" "0,f")
(match_operand:V2SF 1 "register_operand" "f,0") (match_operand:CCV2 3 "register_operand" "z,z")]
(match_operand:V2SF 2 "register_operand" "0,f")))] UNSPEC_MOVE_TF_PS))]
"TARGET_PAIRED_SINGLE_FLOAT" "TARGET_PAIRED_SINGLE_FLOAT"
"@ "@
movt.ps\t%0,%1,%y3 movt.ps\t%0,%1,%y3
......
...@@ -10688,7 +10688,8 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice, ...@@ -10688,7 +10688,8 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice,
enum machine_mode mode0; enum machine_mode mode0;
enum machine_mode mode1; enum machine_mode mode1;
rtx temp_target; rtx temp_target;
rtx if_then_else; rtx src1;
rtx src2;
enum rtx_code test_code; enum rtx_code test_code;
int compare_value; int compare_value;
...@@ -10745,28 +10746,20 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice, ...@@ -10745,28 +10746,20 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice,
switch (cmp_choice) switch (cmp_choice)
{ {
case MIPS_CMP_MOVT: case MIPS_CMP_MOVT:
if_then_else src1 = op3;
= gen_rtx_IF_THEN_ELSE (tmode, src2 = target;
gen_rtx_fmt_ee (test_code, CCV2mode,
temp_target,
GEN_INT (compare_value)),
op3, target);
break; break;
case MIPS_CMP_MOVF: case MIPS_CMP_MOVF:
if_then_else src1 = target;
= gen_rtx_IF_THEN_ELSE (tmode, src2 = op3;
gen_rtx_fmt_ee (test_code, CCV2mode,
temp_target,
GEN_INT (compare_value)),
target, op3);
break; break;
default: default:
return 0; return 0;
} }
emit_insn (gen_rtx_SET (VOIDmode, target, if_then_else)); emit_insn (gen_mips_cond_move_tf_ps (target, src1, src2, temp_target));
return target; return target;
} }
......
...@@ -110,6 +110,7 @@ ...@@ -110,6 +110,7 @@
(UNSPEC_RSQRT2_D 248) (UNSPEC_RSQRT2_D 248)
(UNSPEC_RSQRT2_PS 249) (UNSPEC_RSQRT2_PS 249)
(UNSPEC_MOVE_TF_PS 250)
] ]
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment