diff options
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index e64d4f75a9b..9e217b5f0a4 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -1600,11 +1600,9 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, && TREE_CODE (op[2]) == INTEGER_CST) { double_int off = tree_to_double_int (op[0]); - off = double_int_add (off, - double_int_neg - (tree_to_double_int (op[1]))); - off = double_int_mul (off, tree_to_double_int (op[2])); - if (double_int_fits_in_shwi_p (off)) + off += -tree_to_double_int (op[1]); + off *= tree_to_double_int (op[2]); + if (off.fits_shwi ()) newop.off = off.low; } VEC_replace (vn_reference_op_s, newoperands, j, newop); |