https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102029
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Roger Sayle from comment #3) > Here's the fix that I'm currently testing... > > (simplify > (convert (lshift:s@0 (convert:s@1 @2) INTEGER_CST@3)) > - (if (tree_nop_conversion_p (type, TREE_TYPE (@0)) > + (if (INTEGRAL_TYPE_P (type) > + && !POINTER_TYPE_P (type) either of both is redundant, I think keeping INTEGRAL_TYPE_P is better. > + && tree_nop_conversion_p (type, TREE_TYPE (@0)) > && INTEGRAL_TYPE_P (TREE_TYPE (@2)) > && TYPE_PRECISION (TREE_TYPE (@2)) <= TYPE_PRECISION (type)) > (lshift (convert @2) @3)))