https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64410
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- There are a number of things that make it complicated. 1) gcc doesn't like to vectorize when the number of iterations is not known at compile time. 2) gcc doesn't vectorize anything already involving complex or vector operations. 3) the ABI for complex uses 2 separate double instead of a vector of 2 double. I believe there are dups at least for 2).