https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92791
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- So: struct S { S (void *a, bool b) : x (a), y (b) {} void *x; bool y; }; void bar (S); void foo (void *x) { S sbuf_it (x, x == nullptr); bar (sbuf_it); } with -O2 -m32 -march=i686 -mtune=i586 gives the same insn, but is actually recognized. >From what I can see, the problem is that this_fn_optabs points to something that has been initialized in a function that has been optimized for size, but this function is not. So, the question is, is it invalid to use optimize_function_for_size_p (cfun) in optab conditions?