https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118976
--- Comment #2 from Luke Robison <lrbison at amazon dot com> --- In particular I believe the error occurs because of the following sequence of instructions. Looking at line numbers form the compiler explorer output of 14.2 In the first block line 8: index z31.s, #-1, #-1 This generates a vector of {-1, -2, -3, -4, -5, -6, -7 -8} on 256-bit vector machines, and only {-1, -2, -3, -4} on 128-bits. Then for 128-bit machines, the vector is generated again for the second half on line 20, and then manipulated into negative values {-4, -5, -6, -7} index z29.s, w3, #-1 But clearly the values should be {-5, -6, -7 -8}, and hence the resulting data is shifted by one.