https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113774

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 57359
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57359&action=edit
gcc14-pr113774.patch

So far lightly tested optimization on the bitint lowering side which emits
more optimal code for that (for the unsigned 255 -> 257 bit extension and
m_upwards_2limb low is 3 and high is 4, so when processing first limb in the
loop, the idx < 3 condition is always true (as idx is 0 or 2) and when
processing the second limb in the loop, similarly idxp1 <= 3 condition is
always true (as idxp1 is 1 or 3) while idxp1 == 3 still needs to be compared.

This makes the PRE (or VN?) bug latent.

Reply via email to