https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98877
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is another example where GCC messes up: #include "arm_neon.h" uint8x16_t g(void); uint8x16_t fun(uint8x16_t lo, uint8x16_t hi, uint8x16_t idx) { uint8x16x2_t tab = { .val = {g(), g()} }; uint8x16_t res = vqtbl2q_u8(tab, idx); return res; } Note clang/LLVM messes the above one up even worse.