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
This commit is contained in:
parent
06a4ab7022
commit
491357065f
@ -1,3 +1,11 @@
|
||||
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>
|
||||
James E Wilson <wilson@specifixinc.com>
|
||||
|
||||
|
@ -50,10 +50,10 @@
|
||||
|
||||
(define_insn "mips_cond_move_tf_ps"
|
||||
[(set (match_operand:V2SF 0 "register_operand" "=f,f")
|
||||
(if_then_else:V2SF
|
||||
(eq:CCV2 (match_operand:CCV2 3 "register_operand" "z,z") (const_int 0))
|
||||
(match_operand:V2SF 1 "register_operand" "f,0")
|
||||
(match_operand:V2SF 2 "register_operand" "0,f")))]
|
||||
(unspec:V2SF [(match_operand:V2SF 1 "register_operand" "f,0")
|
||||
(match_operand:V2SF 2 "register_operand" "0,f")
|
||||
(match_operand:CCV2 3 "register_operand" "z,z")]
|
||||
UNSPEC_MOVE_TF_PS))]
|
||||
"TARGET_PAIRED_SINGLE_FLOAT"
|
||||
"@
|
||||
movt.ps\t%0,%1,%y3
|
||||
|
@ -10688,7 +10688,8 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice,
|
||||
enum machine_mode mode0;
|
||||
enum machine_mode mode1;
|
||||
rtx temp_target;
|
||||
rtx if_then_else;
|
||||
rtx src1;
|
||||
rtx src2;
|
||||
enum rtx_code test_code;
|
||||
int compare_value;
|
||||
|
||||
@ -10745,28 +10746,20 @@ mips_expand_ps_cond_move_builtin (enum mips_cmp_choice cmp_choice,
|
||||
switch (cmp_choice)
|
||||
{
|
||||
case MIPS_CMP_MOVT:
|
||||
if_then_else
|
||||
= gen_rtx_IF_THEN_ELSE (tmode,
|
||||
gen_rtx_fmt_ee (test_code, CCV2mode,
|
||||
temp_target,
|
||||
GEN_INT (compare_value)),
|
||||
op3, target);
|
||||
src1 = op3;
|
||||
src2 = target;
|
||||
break;
|
||||
|
||||
case MIPS_CMP_MOVF:
|
||||
if_then_else
|
||||
= gen_rtx_IF_THEN_ELSE (tmode,
|
||||
gen_rtx_fmt_ee (test_code, CCV2mode,
|
||||
temp_target,
|
||||
GEN_INT (compare_value)),
|
||||
target, op3);
|
||||
src1 = target;
|
||||
src2 = op3;
|
||||
break;
|
||||
|
||||
default:
|
||||
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;
|
||||
}
|
||||
|
@ -110,6 +110,7 @@
|
||||
(UNSPEC_RSQRT2_D 248)
|
||||
(UNSPEC_RSQRT2_PS 249)
|
||||
|
||||
(UNSPEC_MOVE_TF_PS 250)
|
||||
]
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user