https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126159
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
.L30:
vmovdqu32 (%rax), %zmm2
vmovdqu32 (%rdx,%rax), %zmm0
vmovdqu32 64(%rax), %zmm3
vmovdqu32 64(%rdx,%rax), %zmm4
subq $-128, %rax
vmovdqa32 %zmm0, %zmm1
vmovdqa32 %zmm2, %zmm7
vpermt2d %zmm4, %zmm5, %zmm0
vpermt2d %zmm3, %zmm5, %zmm2
vpmaxsd %zmm2, %zmm0, %zmm0
vpermt2d %zmm4, %zmm6, %zmm1
vpermt2d %zmm3, %zmm6, %zmm7
vpminsd %zmm7, %zmm1, %zmm1
vmovdqa32 %zmm1, %zmm2
vpermt2d %zmm0, %zmm8, %zmm1
vmovdqu32 %zmm1, -64(%rax)
vpermt2d %zmm0, %zmm9, %zmm2
vmovdqu32 %zmm2, -128(%rax)
cmpq %rax, %rsi
jne .L30
the VF seems a factor of two too high though due to the way we lower the
interleaving scheme and us forcing a constant vector size.