https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121815
Bug ID: 121815 Summary: memcmp should expand inline when the len is [0,1] Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- I thought this was filed before but I can't find it (maybe it was for memcpy). Basically if we know the len is [0,1] we should be able expand memcmp inline always. Take: ``` auto test1(const char* str, unsigned len) { auto cmp_len = len == 0 ? 0 : 1; return __builtin_memcmp("a", str, cmp_len); } ``` This is from https://github.com/llvm/llvm-project/issues/157064 .