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

    <tr>
        <th>Summary</th>
        <td>
            vector miscompile from AArch64 backend
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            llvm:codegen,
            miscompilation,
            NEON
      </td>
    </tr>

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

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

<pre>
    here's a function:
```llvm
define i32 @f(<4 x i32> %0) {
  %2 = icmp ule <4 x i32> %0, zeroinitializer
  %3 = sext <4 x i1> %2 to <4 x i32>
  %4 = icmp sge <4 x i32> zeroinitializer, %3
  %5 = extractelement <4 x i1> %4, i32 0
 %6 = sext i1 %5 to i32
  ret i32 %6
}
```
if we pass `<4 x i32><i32 0, i32 3, i32 3, i32 3>` as an argument, it should return -1.
but the AArch64 backend gives:
```
_f:                        
        fmov    w8, s0
        cmp     w8, #0
        cset    w8, eq
        cmp     w8, #1
        csetm   w0, lt
        ret
```
which returns 0 for this input.
cc @nunoplopes 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U92SszYMfRpxo9mMkfkJF1zwJZvLr4_QcYwAt4CpbbLb7-k7Jn_ddJvJDPigo6MjS8p708_MNeQ_ID8mag2DdbXjngeXnG37dz2wY6DSo8JunXUwdgbZgGigENf_OF4mEE3LnZkZjSSETHRAe5CHDD8jAvIdgXIBVCGUP0A0GM-EII9o9LTgOjJ-F3_AX-ysmU0wajS_2N25cuN6_gwPXnqjEQb7NdmdlD0Fff8q-CpEh03nzs03Ln8Gp3TgkSee_yudRVZsgYg0oLx4lmnSa5pgN8WY1nG4NozyIra0PP67sSAa0-EH46K8xwh88SQPV6GbovzmRb5DIVB5VDMq16-x5u1rQD_YdWxjBaub8S3dgWjOa8AwMDaN00OR4VnpP3lusTcX9i-3DqL5vQPZ4P_8YqyousleQFQf-6jqxRXU0_LAgOQd9RweMP_1bWj6DJ0ivpkfwxV1HF4K_BiMHm4WPQrsrMMwGI9mXtYQHWsdh3VeZ7uMdmGPSVvLtpKVSrhOS5kXRJJEMtRdtRc5q7LkrGyzNi-KPJVpnuqsVFkm08TUJChLSaYiT_eZ2O0pV5VipfOsKM6VhEzwpMy4iwuzs65PjPcr1ymlsqRkVGce_baJRLfOg2xudwFEQAcg2rZNNtq23PP8gCfjtZ0WM6ptQ-_wz_fffsZDfkxcHalv57X3kInR-OCflQQTRq4vrIN1-MjF2Dk7vY5DsrqxHkJYtpGgE9CpN2FYzzttJ6DTVuH18bY4-wfrAHTavHqg083upaZ_AgAA__9hlUIE">