<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/105687>105687</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc++] Go through ranges algorithms and make sure they use the "classic" version
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++,
            performance
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            philnik777
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ldionne
      </td>
    </tr>
</table>

<pre>
    We have many algorithms in `ranges::` that reimplement the algorithm naively. Instead, we should use a version shared between the classic algorithm and `ranges::` where we can do the usual optimizations (vectorization, `memfoo` functions, etc).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxskkuK3DAQhk8jb8Q0cvnVXniRmaFDTpB1WS5byujR6OGhc_ogx2F6ESgwWKqPqv8Txqg3RzSx7pUB3JU2Tn8Mw8AAWPdeYU7Kh8ks2jtH1eyXx_STuMKduEX34Gg2H3RSNnLtOOtFQLdRZM23Ur3gSWHigbS9G7LkEk-Kvrq4Q72TeVz4DxcT4cLgjX8Sj8pns_AciSPfKUTtHY8KAy18pvRJ5A6QNGUD-QREt_xvjE9FgQpZouOLP5pzzGi4vydt9W9M2rvIGVx3ksmH80-Zh_XCkl29L6A1O3lcLSeUJIPxUi1Ts4zNiBVN9QBt0zai7ys1dVeQ1PXzsDYDrq0QtAwNoKjbTo64ykpPIKAVV4C6r2vRX7AZu3Xs5m5caxJzy1pBFrW5GLPbiw9bpWPMNNWi669DZXAmE097Rs-SwetRwOCtCKWw-mDRSTqNhqmQXua8RdYKo2OKX-ykkznewhOqe-ffS17B503xv7k-ay-BW_wgHnOgkuvj0FYCZgCnIAbwT2OVg5lUSvfDDtwY3DadVJ4v0lsGtzLM-Xm5B_-LZGJwO7aODG7n4vsEfwIAAP__7qvk7A">