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

    <tr>
        <th>Summary</th>
        <td>
            [ARM][BUG] Run bad result for vect_type in arm32be
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          hstk30-hw
      </td>
    </tr>
</table>

<pre>
    https://godbolt.org/z/vYKsfos5o

```
typedef short int SV __attribute__((vector_size(16)));
extern void abort(void);

__attribute__((noinline)) void vec_div(SV *x, SV *y)
{
    *x = *y / ((SV){1, 4, 2, 8, 16, 64, 32, 128});
}

SV s[] = {
    ((SV){73, -9123, 32761, 8191, 16371, 1201, 12701, 9999}), 
 ((SV){9903, -1, -7323, 0, -7, -323, 9124, -9199})
};

int main()
{
    SV sr, sr2;
    int i;

    for (i = 0; i < sizeof(s) / sizeof(s[0]); i++) {
        vec_div(&sr, s + i);
 if (sr[0] != s[i][0] / 1 || sr[3] != s[i][3] / 8)
            abort();
 asm volatile("" : : "r"(&sr) : "memory");
    }
    return 0;
}
```

The expected `sr` is ```[73, -2280, 16380, 1023, 1023, 18, 396, 78]```
the result  is            ```[-2280, 73, 1023, 16380, 18, 1023, 78, 396]```

I guess `rev` instruction is misused. 

(The vectorize for big endian mode in llvm use `rev` to handle byte ordering, and introduces many `rev` instrution, also some bugs.
https://llvm.org/docs/BigEndianNEON.html)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsVU1v4zYT_jX0ZRCDGtmmdPAhjtcvXhTdAps2QE-GJE4stpIYkJR3vb--GFJ2rGwMeUQNh88880Gy8t6cBqKtWO_Eer-oxtBat219-DeXD-33RW31ZduG8OZF_ijwIPBwsrq2XVhadxJ4-CnwcP77N_9q_doKuRfycZIbOT3xM1zeSNMr-Na6AGYI8PwCx2MVgjP1GOh4FFgILM7UBOuO3vwkgUW2EVhOT75LSPQjkBvgbI2GqrYu8Cpr9L1Nkp_AD9YMnRkoYSaQMzVHbc4Ci-cXEPj4Q-ATpOGF7RKimqABIBqByPfRBAQeIKE_v7C92mWMsGKBLAoWHMoTbKI2j-oMC6H2M9pqf8__-QV8KkxyNqdw71DlDPhQZpgnfLWJHIqszJLzXKUByumt0qAsy3JigU8w4c_By1Im-LjgQeXJiUxfUU6qMsPVROSGegtsXhvugL4yQ3T1WY45eMdg3uFtLU_wSvMBjfWv1jFxE3MlRb4DHj4Bt5J9FVh4rjgX606z3kmxnmoARuAuPuU81_x7bxKBm4kYCIyL3gsI5pU5eDcBg8CM6bAjw45u6gNkINSTUBygWO_yz63zq_V7luDud-3_GYfK93C2XRVMR3EOBSKI_DH9EV1UXQMpr-qeeusuca6cZfzWlvzhKIxuiAn-2LTzHZ_kny0B_XijJpAGsZHeiY0E4-Hden1tX8RCTt06DWTqq9s77qS8jFtJFZyiD6dMS-DIj10A9nH3u3d3c6Tm6De3xb1a3Zz-4i7J_8NpJB8jcnSO4Q0-uLEJxg5Mozd-9KSXMDsfseDcpPPO_KTYv7U5AQ3aVAP0VhOYAbru3MPo6Q4-WGirQXcE9SUQWKfJmeHENKtB8wZxVo8Neeir4fILL6YVbTtvwdueoB5Pfplozc96dj4d9No2XuBhZ05fIsGvX_74umxD390ac6G3uS7zslrQNlMos9Vms5KLdqvKpirqut5kusgarVdVVVLZKMo1retCL8wWJa6kkmuJuVzJZbnKiLSUqxxJqbwQK0l9ZbrlldDCeD_StlSqwEVX1dT5eIchDvQd4iQ38nq_cFte88AhipXsjA_-HSWY0MXL7_Hb72nD7f76H2-5b-MAdaWvzcS14Uod-RrjqlSuz7Gmxei6j9ejCe1YLxvbT_mbXg9vzv5DTRB4iPQ4mYn-eYv_BQAA__8dlfkc">