http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46011
Summary: 256bit vectorizer failed on double->int Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com For gcc.target/i386/vectorize4-avx.c, vect256 branch generates: .L2: vmovaps -120(%rsp,%rax), %ymm0 vcvtps2pd %xmm0, %ymm1 vextractf128 $0x1, %ymm0, %xmm0 vsqrtpd %ymm1, %ymm1 vcvttpd2dqy %ymm1, %xmm1 vmovdqu %xmm1, (%rdi,%rax) vcvtps2pd %xmm0, %ymm0 vsqrtpd %ymm0, %ymm0 vcvttpd2dqy %ymm0, %xmm0 vmovdqu %xmm0, 16(%rdi,%rax) addq $32, %rax cmpq $1024, %rax jne .L2 Trunk at revision 165455 generates .L2: vmovaps -120(%rsp,%rax), %xmm1 vmovhlps %xmm1, %xmm0, %xmm0 vcvtps2pd %xmm1, %xmm2 vsqrtpd %xmm2, %xmm2 vcvttpd2dqx %xmm2, %xmm2 vcvtps2pd %xmm0, %xmm1 vsqrtpd %xmm1, %xmm1 vcvttpd2dqx %xmm1, %xmm1 vpunpcklqdq %xmm1, %xmm2, %xmm1 vmovdqu %xmm1, (%rdi,%rax) addq $16, %rax cmpq $1024, %rax jne .L2