https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103818
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> --- We have access list: Base 0: alias set 2 Ref 0: alias set 1 access: Parm 0 param offset:0 offset:-4611686018427387936 size:32 max_size:32 access: Parm 0 param offset:0 offset:352 size:32 max_size:32 access: Parm 0 param offset:0 offset:64 size:32 max_size:32 access: Parm 0 param offset:0 offset:0 size:32 max_size:32 access: Parm 0 param offset:0 offset:32800 size:32 max_size:32 access: Parm 0 param offset:0 offset:160 size:32 max_size:32 access: Parm 0 param offset:0 offset:4629700416936869888 size:32 max_size:32 access: Parm 0 param offset:0 offset:-96 size:32 max_size:32 access: Parm 0 param offset:0 offset:1376 size:32 max_size:32 access: Parm 0 param offset:0 offset:224 size:32 max_size:32 access: Parm 0 param offset:0 offset:-288 size:32 max_size:32 access: Parm 0 param offset:0 offset:448 size:32 max_size:32 access: Parm 0 param offset:0 offset:288 size:32 max_size:32 access: Parm 0 param offset:0 offset:1568 size:32 max_size:32 access: Parm 0 param offset:0 offset:640 size:32 max_size:32 access: Parm 0 param offset:0 offset:2624 size:32 max_size:32 and we want to merge Parm 0 param offset:0 offset:-4611686018427387936 size:32 max_size:32 and Parm 0 param offset:0 offset:4629700416936869888 size:32 max_size:32 into one entry since we think they have small difference. So an overflow issue: new_max_size = max_size2 + offset2 - offset1; if (known_le (new_max_size, max_size1)) new_max_size = max_size1; So we need 128bit math here. I need to look into proper way to get this right (and corresponding overflow that makes the lgoic to choose these two entries as closest to each other.