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

    <tr>
        <th>Summary</th>
        <td>
            Clang LLVM emitting float instrinsics for bitwise operation for integer inputs
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    When executing bitwise operations on `Vector128<int>` in Runtime Mono, LLVM is emitting single-precision floating-point instruction. Example for logical bitwise and:

This is the LLVM IR which is generated:
```
#0 {
BB0:
  %0 = and <4 x i32> %arg_vectorA, %arg_vectorB
  %1 = inttoptr i64 %vret to <4 x i32>*
  store <4 x i32> %0, <4 x i32>* %1, align 1
  ret void
}
```

And the assembly from this: 
```
<BB>:1
   0:   c5 f8 54 c1             vandps %xmm1,%xmm0,%xmm0
   4:   c5 f8 11 07             vmovups %xmm0,(%rdi)
   8:   c3                      retq
```

Could someone please explain me why there is a `vandps ` and not `vpand`? Thank you

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9U8lu2zAQ_RrpMohBUZt10MFLAhRILkGQHgtKGktsKFEVKS_9-g5px3WaoALBZUZ8b2b4ptLNqfze4QB4xHq2cmihkvYgDYIecRJW6sGAHiDI2CvWVk8RXwbxRg42iO_JCHKA53mwskd40oMO-AYeH1-fQBrAXloPaWhSeDdOWEtDiLBTWjjP3agJiTCMnebakS3g_ij6USHs9ARKt7IW6hqTGJogXgVsG7DL_NIREQ3b4Zn32zMcOll3ztji4HLAm0sZu4zzkccMgnx9Pq3X7PojQMBT8sVbR0rrJoEjyJhT2s4lpvbH3hdk5VL-YFnfQEQegpK0erQTyCxx1v2EFqz-CBvwK7chFPxMyjzVP3c8i3MIJdsBoncMR7HXsrlkmm-_roCfV5Siq6AwBvtKnWA36Z4s0lBB4OuL8Wa9dhHEqysluPrRUqewW0KaQB3B7benUo7GBXzsexfzecdudu9IyS1SFAHLPyL1ej9foc4ASzpMjQx4cUVZXlBi-PKjEv36T1U2elYNGN2jHhBIk4IkiMdRCRI96f3QnVzV6KVIa8K1yHuC1BdONYO23jo63RJ2_AAvnRje4KTnM0WIZZRlnMXLeJmGTRk3RVyI0EqrsNwoQc3jVX1tJd8554ahSdbG98mnnvVWUh226NZxtiacJ1V21o7uTQP-QKOVtpurRa17Oii1f1-oU_VPkjIdpTEzGtqkeVIUYVcWnPM8Fg0uM5aLahflFLLIeVNgxUSVhEpUqEwZpOuA8wEP4CFoH6TbUJaccc4KFkVxVCTJIuVRlWbpMt_xmmUFBgnDXki1cHEs9NSGU-lDqubWkFNJY81fJwmWRI_o6QhfzLbTU9kLq2fzpn-Lt9DTlz78P7uvcME">