https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104601
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[11 Regression] Invalid |[11/12 Regression] Invalid
|branch elimination at -O2 |branch elimination at -O2
Target Milestone|--- |11.3
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
>From fre3 (with details):
Value numbering stmt = *__pred$__d_53 = _58 ();
Setting value number of .MEM_143 to .MEM_135 (changed)
Value numbering stmt = SR.60_59 = MEM <unsigned char> [(const struct optional
&)__pred$__d_53 + 4];
Setting value number of SR.60_59 to 0 (changed)
Value numbering stmt = _60 = VIEW_CONVERT_EXPR<bool>(SR.60_59);
Match-and-simplified VIEW_CONVERT_EXPR<bool>(SR.60_59) to 0
RHS VIEW_CONVERT_EXPR<bool>(SR.60_59) simplified to 0
Hmm,
Somehow *__pred$__d_53 is missed.