expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.
2012-11-15 Steve Ellcey <sellcey@mips.com> * expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp. From-SVN: r193539
This commit is contained in:
parent
7ee2eb8277
commit
59bdc31c02
2 changed files with 12 additions and 6 deletions
|
@ -1,3 +1,7 @@
|
|||
2012-11-15 Steve Ellcey <sellcey@mips.com>
|
||||
|
||||
* expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.
|
||||
|
||||
2012-11-15 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR tree-optimization/54619
|
||||
|
|
14
gcc/expr.c
14
gcc/expr.c
|
@ -7840,15 +7840,17 @@ expand_cond_expr_using_cmove (tree treeop0 ATTRIBUTE_UNUSED,
|
|||
int unsignedp = TYPE_UNSIGNED (type);
|
||||
enum machine_mode mode = TYPE_MODE (type);
|
||||
|
||||
temp = assign_temp (type, 0, 1);
|
||||
|
||||
/* If we cannot do a conditional move on the mode, try doing it
|
||||
with the promoted mode. */
|
||||
if (!can_conditionally_move_p (mode))
|
||||
mode = promote_mode (type, mode, &unsignedp);
|
||||
|
||||
if (!can_conditionally_move_p (mode))
|
||||
return NULL_RTX;
|
||||
{
|
||||
mode = promote_mode (type, mode, &unsignedp);
|
||||
if (!can_conditionally_move_p (mode))
|
||||
return NULL_RTX;
|
||||
temp = assign_temp (type, 0, 0); /* Use promoted mode for temp. */
|
||||
}
|
||||
else
|
||||
temp = assign_temp (type, 0, 1);
|
||||
|
||||
start_sequence ();
|
||||
expand_operands (treeop1, treeop2,
|
||||
|
|
Loading…
Add table
Reference in a new issue