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

    <tr>
        <th>Summary</th>
        <td>
            [LV] missed optimization for loop with condition
        </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>
    * test: https://gcc.godbolt.org/z/zM5qfqnda
```
__attribute__((noinline)) void foo()
{
for (unsigned pass = 0; pass < pass_num; pass++) {
  #pragma clang loop vectorize(assume_safety)
  for(unsigned long i=0; i<translation_num; i++) {
    for (int tid=0; tid<elements; tid++) {
 int xidx = x[pass][tid];
     if ( xidx < 0) {
      trans_sin_x[tid] = -sin_x[i][-xidx];
     } else {
      trans_sin_x[tid] = sin_x[i][xidx];
     }
    }
  }
}
}
```

* **gcc do sve vectorize, while llvm don't now**, and record the llvm's assemble
```
.LBB0_3:
        add     x13, x13, #1
        cmp x13, #100
        b.eq    .LBB0_1
.LBB0_4:
        madd    x14, x13, x11, x10
        mov     x15, xzr
        b .LBB0_7
.LBB0_5:
        madd    x17, x13, x11, x10
        ldr s0, [x17, x16, lsl #2]
.LBB0_6:
        str     s0, [x12, x15]
 add     x15, x15, #4
        cmp     x15, #4000
        b.eq .LBB0_3
.LBB0_7:
        ldr     w16, [x9, x15]
        tbz     w16, #31, .LBB0_5
        neg     w16, w16
        ldr     s0, [x14, w16, uxtw #2]
        fneg    s0, s0
        b       .LBB0_6
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVc-TqygQ_mvw0jUpbXTUg4dJUjm9ve41RQQNWwgZwSQvf_0WqBnzY7deypkGuvv7vm4UmLWy1UJUJFuTbBuxwR1NX50b3jTRwfDfFcEvcMI6Qr_g6NzJEvpFcEdw19b1qjX8YJRbmb4luLv5v7-y7-Zbc0biLYm_yGc8PWG63zPnenkYnNjvCRYEC22kVlILgiXBEs5GcmiMCc5yAsnX46AxPRAsBh1Uczgxa4HQLcSErufZJgz2eujmRYLr8JRwRwIgSE89azsGtWK6BWXMCc6idqaXN0GwYNYOndhb1gj3-64FoDH9UoMyugVJ6DZokIRuXM-0VcxJo2cV8q2EgOULktqBk3wGCcONUKIT2tl55Q2Cz7tKfg09uJJsHarNtiRb-4xsS-iCDGTjyeaMDcQvegCC-L2Ven-9owT4j3lNjgQfHuaFguRbEMqKP4Z9Qv0v0J_ZYnIfvhk8vnfTf_wCgt60dQ3cgD2L5ZZv4HKUSoBS5w640QRzB9pcxhzvZ5pDL2rTc3DHMZBgboFZK7qDEm_JV7_W63hP_Yez6AgA4zzYa0I99mQI0uQxru5OS2ccP7oPK_Ht7UiTLDnTF85uIr0m6YLzmiSjeYLuzHlSmAX_rX-inkjzJWn2P6T5H5Aq3oONQ7XZ-p7y6Y2yyrcA_RuyYPx8YbSuH-0PDo442T130f9s9o0tTl_7v4jzAfHbTZg3eiEtf5Hmy_O_y1iS11a-SJt-7nB7iEVKQ8_mRj8Ea9Eug715S7zoSToH4gaGq7s8NndObCbkMdE-Vz7ZeSsev4CIV5SXtGSRqJIc05LmeVZGx4o3MU_Lpsh5igXNy9JPM8FF0WDRFEUkK4wxjQssE4pIyxWtKZZYJE0cN4yXMUlj0TGpVv4r9DdQJK0dRJXEn1mWRoodhLLhYkPU4gLBS9DXF_WVT_o4DK0laaykdfYHxkmnwo34629_SnXSWsHBnJzs5C0c6-HcDhfGRboj1EZz6dejoVfV0y0p3XE4rGrTEdyN50UwH6fe_CNqR3AXhFmCu0n5ucJ_AwAA___5q_8O">