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

    <tr>
        <th>Summary</th>
        <td>
            [LoopVectorize] LLVM fails to vectorise loops with multi-exit
        </td>
    </tr>

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

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

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

<pre>
    * Since the [RFC](https://discourse.llvm.org/t/on-multi-exit-loop-vectorizer/58458), the process is slow,
  so  use a simple case to track the result, https://gcc.godbolt.org/z/r6KGKMYMd
  > the case from above RFC, which is expect a base case, both gcc and llvm don't support it now.
```
int foo(float *a, int n, int M){
  int i;
  for (i=0; i<n; i++){
    if (a[i] == 0) break;
  }
  return i;
}
```

* kernel body of loop
```
.LBB0_2:                                // =>This Inner Loop Header: Depth=1
        ldr     s0, [x8, x0, lsl #2]
        fcmp s0, #0.0
        b.eq    .LBB0_5
        add     x0, x0, #1
 cmp     x9, x0
        b.ne    .LBB0_2
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VF2PqzYQ_TXDyyiR144DeeAhhEtb3d2XtrpSnypjhuCug6ltNun--sok2S9VRQjbHM-ZM-PxqBDMcSQqQVYg60zNcXC-fOm7vs9a1_1TAt_jb2bUhHEgBFn92hxA1sCLIcYpgNgDb4A3nQnazT7Q2tqX09r5I_AmAm_cuDrNNpoVXUxcWeem1Qvp6Lx5JQ-8kcVGFsB3wA-Li8k7TSGgCRisOwM_AKuB7RGDQ5wDocJgTpMl1CoQRofRK_28GHsKs42J6rO6o9bro-taZ-NN2ivwxm-___T96Y-n7u4BxLeFZiHuvTuhat0LYYqZH_A8GD0kYXSZSEdU2KaNaXeCWxcHPGqNauwwZQE7NwLPI4Z5mpyPaCKO7ry-uoMtu73L0owRe-eAF711KiLwvUqs6f94nzylROXVXW_6ZUC8rXvnEXhhQNQMRJWww3id8Gp5P1ojmj5tVyArA7JGEDWIGhnwHbae1PMHasjr-9RTnP34wfEb9iWk25fv8Zn8SBZTRaHrMVXBf1qsH6uK_clBLPL-77me61Xyt98HE_CXcSSPj85N-DOpjnxiqWmKA4j64T3o9NjOL2NgKbMgq0uRJpdlaYNF4IKnMv9k1evTdDfhgq3ZZ7hd099pvAYhP4Oq65bx6uJyJ7nrSswLvLvBX5hHemfmX1KXdaXodmKnMiof8octY0UuNtlQkpZs03JJBfV5LmXXsl273QiRU846rjJTcsY3TD4UTDIpNutckhBKF1vdSyLewYbRSRn7dqkzE8JM5Y5vhcisasmGpXdwPtIZFxB4ylzmy2SzaudjgA2zJsTwzhJNtEvTScf1494OUg0-Pv54wl4ZG9LNvnWKQEvJBDybOOB7O8lmb8svN93EYW7X2p2AN8nfbVhN3v1FOnWkRWUA3ixR_BsAAP__k9Nppw">