https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109471
Bug ID: 109471 Summary: Missing loop unrolling for small std::vector? Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: stefano.d at posteo dot de Target Milestone: --- Hi, I did some benchmarks where I wanted to bench a switch-case statement against a small std::vector. In GCC 12.2 the result was as expected: The switch-case statement was faster than the linear search in std::vector. But when I switched to clang 13 or above, the std::vector implementation was much faster than the switch-case statement! You can the results here: https://quick-bench.com/q/9DEDS7rQm0MnIFxwZt3A2iD86G0 Please switch here between GCC and clang. Here an assembly output: https://godbolt.org/z/j8oenP8x9 Kind regards Stefano