Commit dc362ada by Uros Bizjak

re PR target/79514 (ICE in curr_insn_transform, at lra-constraints.c:3773)

	PR target/79514
	* config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.

testsuite/ChangeLog:

	PR target/79514
	* gcc.target/i386/pr79514.c: New test.

From-SVN: r245844
parent fe792dd8
2017-03-02 Uros Bizjak <ubizjak@gmail.com>
PR target/79514
* config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
2017-03-02 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/79780
......@@ -2036,7 +2041,7 @@
scalar_stmt_cost and vec_stmt_cost.
2017-02-01 Torvald Riegel <triegel@redhat.com>
Richard Henderson <rth@redhat.com>
Richard Henderson <rth@redhat.com>
* builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
conditional on existance of a fast atomic load.
......@@ -2337,9 +2342,9 @@
2017-01-27 Richard Earnshaw <rearnsha@arm.com>
PR target/79239
* arm.c (arm_option_override): Don't call build_target_option_node
until after doing all option overrides.
(arm_valid_target_attribute_tree): Likewise.
* arm.c (arm_option_override): Don't call build_target_option_node
until after doing all option overrides.
(arm_valid_target_attribute_tree): Likewise.
2017-01-27 Martin Liska <mliska@suse.cz>
......
......@@ -3015,6 +3015,36 @@
operands[0] = replace_equiv_address (operands[0], stack_pointer_rtx);
})
(define_insn_and_split "*pushxf_rounded"
[(set (mem:XF
(pre_modify:DI
(reg:DI SP_REG)
(plus:DI (reg:DI SP_REG) (const_int -16))))
(match_operand:XF 0 "nonmemory_no_elim_operand" "f,r,*r,C"))]
"TARGET_64BIT"
"#"
"&& 1"
[(set (reg:DI SP_REG) (plus:DI (reg:DI SP_REG) (const_int -16)))
(set (match_dup 1) (match_dup 0))]
{
rtx pat = PATTERN (curr_insn);
operands[1] = SET_DEST (pat);
/* Preserve memory attributes. */
operands[1] = replace_equiv_address (operands[1], stack_pointer_rtx);
}
[(set_attr "type" "multi")
(set_attr "unit" "i387,*,*,*")
(set (attr "mode")
(cond [(eq_attr "alternative" "1,2,3")
(const_string "DI")
]
(const_string "XF")))
(set (attr "preferred_for_size")
(cond [(eq_attr "alternative" "1")
(symbol_ref "false")]
(symbol_ref "true")))])
(define_insn "*pushxf"
[(set (match_operand:XF 0 "push_operand" "=<,<,<,<")
(match_operand:XF 1 "general_no_elim_operand" "f,r,*r,oF"))]
......
2017-03-02 Uros Bizjak <ubizjak@gmail.com>
PR target/79514
* gcc.target/i386/pr79514.c: New test.
2017-03-02 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/79780
......@@ -1082,7 +1087,7 @@
2017-02-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
* gcc.dg/sms-8.c: Update options for powerpc*-*-*.
* gcc.dg/sms-8.c: Update options for powerpc*-*-*.
2017-02-02 Jan Hubicka <hubicka@ucw.cz>
......
/* PR target/79514 */
/* { dg-do compile } */
/* { dg-options "-m96bit-long-double" } */
extern void bar (long double);
extern long double x;
void foo (void)
{
bar (x);
}
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