Commit 8cb320b8 by David Edelsohn Committed by David Edelsohn

re PR target/19019 (GCC ldouble format incompatibility with XLC long double)

	PR target/19019
	* config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
	(trunctfdf2_internal1): New.
	(trunctfdf2_internal2): Renamed from trunctfdf2.

From-SVN: r95042
parent adfec6a6
2005-02-14 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* config/rs6000/rs6000.md (truntfdf2): Change to define_expand.
(trunctfdf2_internal1): New.
(trunctfdf2_internal2): XLC-compatible fadd version.
2005-02-14 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/19853
......
......@@ -8325,14 +8325,36 @@
DONE;
})
(define_insn "trunctfdf2"
(define_expand "trunctfdf2"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))]
"(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
"")
(define_insn_and_split "trunctfdf2_internal1"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f,?f")
(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "0,f")))]
"(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && !TARGET_XL_COMPAT
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
"@
#
fmr %0,%1"
"&& reload_completed && REGNO (operands[0]) == REGNO (operands[1])"
[(const_int 0)]
{
emit_note (NOTE_INSN_DELETED);
DONE;
}
[(set_attr "type" "fp")])
(define_insn "trunctfdf2_internal2"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))]
"(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_XL_COMPAT
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
"fadd %0,%1,%L1"
[(set_attr "type" "fp")
(set_attr "length" "4")])
[(set_attr "type" "fp")])
(define_insn_and_split "trunctfsf2"
[(set (match_operand:SF 0 "gpc_reg_operand" "=f")
......
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