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

Reply via email to