diff options
Diffstat (limited to 'gcc/tree-ssa-ccp.cc')
-rw-r--r-- | gcc/tree-ssa-ccp.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-ccp.cc b/gcc/tree-ssa-ccp.cc index e048675..1a555ae 100644 --- a/gcc/tree-ssa-ccp.cc +++ b/gcc/tree-ssa-ccp.cc @@ -1966,7 +1966,8 @@ bit_value_binop (enum tree_code code, signop sgn, int width, } else { - widest_int upper = wi::udiv_trunc (r1max, r2min); + widest_int upper + = wi::udiv_trunc (wi::zext (r1max, width), r2min); unsigned int lzcount = wi::clz (upper); unsigned int bits = wi::get_precision (upper) - lzcount; *mask = wi::mask <widest_int> (bits, false); |