https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116972
Bug ID: 116972 Summary: missed vectorization when an array of type 'long' is initialized to 0 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: 652023330028 at smail dot nju.edu.cn Target Milestone: --- Hello, we noticed that there seems to be a missing vectorization for the code below. When 'arr' is of type 'int', it works as expected. https://godbolt.org/z/drGx7WqP6 long arr [20]; void f() { for (int i = 0; i < 20; i += 1) { arr [i] = 0; } } GCC -O3: f(): mov ecx, 20 xor eax, eax mov edi, OFFSET FLAT:arr rep stosq ret Expected code (Clang): f(): xorps xmm0, xmm0 movaps xmmword ptr [rip + arr+144], xmm0 movaps xmmword ptr [rip + arr+128], xmm0 movaps xmmword ptr [rip + arr+112], xmm0 movaps xmmword ptr [rip + arr+96], xmm0 movaps xmmword ptr [rip + arr+80], xmm0 movaps xmmword ptr [rip + arr+64], xmm0 movaps xmmword ptr [rip + arr+48], xmm0 movaps xmmword ptr [rip + arr+32], xmm0 movaps xmmword ptr [rip + arr+16], xmm0 movaps xmmword ptr [rip + arr], xmm0 ret Thank you very much for your time and effort! We look forward to hearing from you.