https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121957
--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Slightly cleaned up testcase:
typedef long __attribute__((vector_size(16 * sizeof(long)))) v16di_s;
typedef long __attribute__((vector_size(32 * sizeof(long)))) v32di_s;
int main() {
v16di_s
vcmp = {},
v16_1 = __builtin_shufflevector(
(v32di_s){80383229547, 80383229547, 80383229547, 80383229547,
80383229547, 80383229547, 80383229547, 80383229547,
80383229547, 80383229547},
(v32di_s){},
28, 3, 5, 8, 9, 8, 3, 7, 4, 3, 3, 2, 9, 7, 5, 0);
asm goto("" : : : : BS_LABEL_1);
BS_LABEL_2:
asm goto("" : : : : BS_LABEL_1);
BS_LABEL_0:
asm goto("" : : : : BS_LABEL_2);
v16di_s v16_2 = __builtin_shufflevector(v16_1,
(v16di_s){},
2, 6, 3, 2, 4, 9, 4, 9, 2, 3, 0, 3, 7, 7, 1, 0);
vcmp = 0 == v16_2;
asm goto("" : : : : BS_LABEL_0);
BS_LABEL_1:
asm goto("" : : : : BS_LABEL_0);
if (vcmp[3])
__builtin_abort();
}