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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Ah, before the ext_dce pass, (reg:SI 108) and (reg:SI 131) even are guaranteed
to have [0, 1] range value.
But ext_dce changes
 (insn 113 118 56 12 (set (reg:SI 131 [ iftmp.6_16 ])
-        (zero_extend:SI (reg:QI 118 [ _74 ]))) 184 {*zero_extendqisi2}
+        (subreg:SI (reg:QI 118 [ _74 ]) 0)) 100 {*movsi_internal}
      (nil))
Now, unsure if nonzero_bits doesn't take that paradoxical subreg into account
or what, but with the paradoxical subreg in assuming that it is properly
extended all the time is no longer valid assumption.

Reply via email to