https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114965
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduded testcase that fails at -O1 (but passes at -O2):
```
[[gnu::noipa]]
static void g(char pad1) {
if (pad1 != '0' && pad1 != '+' && pad1 != '_')
__builtin_unreachable();
if (pad1 == '0' || pad1 == '+')
__builtin_trap();
}
char buf[4000];
int main(void) { g('_'); }
```
But it definitely comes down to reassociation incorrectly thinking that (here)
that pad1 could only be 43 or 48. While it could be also 93 ('_').