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

    <tr>
        <th>Summary</th>
        <td>
            Failure to vectorize @llvm.lrint.i64.f32
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:codegen,
            vectorization,
            llvm:SLPVectorizer
      </td>
    </tr>

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

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

<pre>
    Pulled out of Issue #55202

https://godbolt.org/z/xqcjnTPhj

```
#include <cmath>
void testrint( const float * __restrict arg, float *out) {
    *out++ = std::rint( *arg++ );
    *out++ = std::rint( *arg++ );
    *out++ = std::rint( *arg++ );
    *out++ = std::rint( *arg++ );
}
void testlrint( const float * __restrict arg, long *out) {
    *out++ = std::lrint( *arg++ );
    *out++ = std::lrint( *arg++ );
    *out++ = std::lrint( *arg++ );
    *out++ = std::lrint( *arg++ );
}
```
while rint gets vectorized, lrint doesn't:
```
testrint(float const*, float*):                       # @testrint(float const*, float*)
        vroundps        $4, (%rdi), %xmm0
        vmovups %xmm0, (%rsi)
        retq
testlrint(float const*, long*):                      # @testlrint(float const*, long*)
        vcvtss2si       (%rdi), %rax
        movq    %rax, (%rsi)
        vcvtss2si       4(%rdi), %rax
        movq    %rax, 8(%rsi)
        vcvtss2si       8(%rdi), %rax
        movq    %rax, 16(%rsi)
        vcvtss2si       12(%rdi), %rax
        movq    %rax, 24(%rsi)
        retq
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdVV1v2yAU_TX4Bc1ywHbtBz-kzSpN20O1TnutbMA2ETYp4Kzrr98FNx9Nuy3rXqYhkhhfzjn3XCA0mn-vbialBMd6cli3-IO1k8CI0CwjCUHJCiXL-bt3bmMRXSJyDb3TvNHKxdp0MHqEz8M9W49fbvr1MQjlyVOfh4TKkamJgwS9YkPtekTfz7Gtlhw7YZ2Ro0OkwEyP1uFW6dpBQkt8d2dClDlce9WrQwySR6TE6OJy5sLQdq8voYPaClvHffp0uROAGYFonkFKRP8HOLpYnRRUnV9Rpcfuzwuq_tLTv4_fF_VkQ3_rpRLYw3EnnMVbwZw28lHwUM0Q4FrYEZEL58VeIzna9PPahHWCXPZ7PDxDNsHHKw3OFUZpcjbRvia-bY2eRr6xB7I09QBgQSQzXHpEGGcPw5CcgAe9nQC7Cx5wVr5QMsLdHyyrn6bqd-FvLB85PovnedJs66wlVu7JXjg19cNzDPi8n-eG2C99nvKnbxMozlco3qawyM-XWJC3aZD0nA2xPxIRrygvaVlHTjolqutaqskI7PThcPmVV2o7xGHpY5mncUtJNBlVndxS0vVTEzM9wMAjnn7ebYxeAxsMpb_wLDz4C6-I-qpoOWF125JiUeeM5SlvG8LSJCsWC5EVTaTqRihboQz-JUggpUumuegEnHIyF4bscq2d1Eevn6bffrr5ujNjfDRbRbKCC5ckWbKARkke52UuSkbKlnGacMrAtBigGnGwDhdvZKpgppk66ysirbOHYG2t7EYhQqLAX0-u16b6_PFWDnqMgu8qmP4B_YwsDw">