https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98703
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Yeah, the IMAGPART_EXPR of .*_OVERFLOW is a hand-written forward pattern matching, for this PR one would need pattern matching in the backwards computation (like operator*::op1_range) that would not go through a single stmt, but through the whole sequence. And propagate that [1, 1] IMAGPART_EXPR implies that .MUL_OVERFLOW are ~[0, 0] (for .ADD_OVERFLOW it is that at least one has to be ~[0, 0]).