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

    <tr>
        <th>Summary</th>
        <td>
            [VRP] Some optimization omissions of small constants
        </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>
    For the two similar case foo1000 and foo1001, gcc do sve for foo1000 , while llvm does none for the both, see https://godbolt.org/z/fcWxs6G3b.

- gcc: improve the float compare **if (i_16 > 1.0e+0)** to int compare in 153t.ivcanon for foo1000, so later, it can do sve.
- llvm: maybe need improve in function isKnownExactCastIntToFP ?
```
int foo1000 (int index){
    int aLength = 1500;
    int a[aLength];

    for(float i = 1000; i > 0; i--){
        a[(int)i] = (int)(i);
    }

    return a[index];
}


int foo1001 (int index){
    int aLength = 1500;
    int a[aLength];

    for(float i = 1001; i > 0; i--){
        a[(int)i] = (int)(i);
    }

    return a[index];
}
```



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVE2PmzAQ_TVwGQWZz4QDh93Npqraw6qt2mM1YBNcGTvCJtntr-_YpEk2f6C1AM8wz2_ejBhaw9-anZnADQLcyYCVo1Q4QYdWQG9MyhgD1Pxsp1H2BPuuA07Qo0dMF5QPnQapBCh1HAkhLGijF5Dnb40bPMgKAYNzBxvlD1G2o2tveGuUS8y0J-833X3349VWH_I2idg2Yg_Lc-Vz0ymQ42EylN_T9sqgg86MB5wEqSDOB9mTsZE_0wqi_BnShIkoe2RRVi9xcAakvp6SGtIyd4k8dkiab-sKig0odGLytqRTqM8NSP7q8iV7YSO-tQK0EPyikbj7WXdOEq-0n7Q56edX7NwTWvdRu29m90Iid-c6K3a-gus1Xvu78a7UXLz6QtaPCwZo-QB-FnrvBuLaUjEkPL8HROXjGRSV20v4CqKqKcnST7nwsMATvGdYzNXqPrtfnnxRSFFJ_OH85Y03_HarKVpv7xVMws2TDmRLnbc638PvG5T-qwal_1-D3n9Et8-YNzmv8xpjJ50SDfF8__Li1Xw1owBzcPQD-I3hYzWjtJYMC6YHO6JSNC_aOtTOxvOkmrshlm6Y24RGipwwD8u2ojH4JToqckd8s7BklGXJynhoup7XdZF2WBXIivWGcyzqDbI2bdm6ZnWssBXKNqF3mRYnCBRkk-RYNhnLMlamVZqVOcuSds1T3KRZX2FRFXwTFUyMKFXidfi_Szw1QVI77y0FlbTOXoNI5e5pdkM64sfZDWZqjj3v-zgkboLwP5z6edk">