http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46519
Summary: Missing vzeroupper Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: ubiz...@gmail.com Created attachment 22430 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22430 A testcase /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O3 -funroll-loops -ffast-math -mavx -Wno-multichar -S bad.c .L531: vmovapd %ymm0, (%rsp) vzeroupper call Get_Token movl Token_Id(%rip), %eax vmovapd (%rsp), %ymm0 cmpl $1, %eax je .L139 cmpl $2, %eax je .L541 L171: vmovsd (%rax), %xmm9 vsubsd 32(%rsp,%rcx,8), %xmm9, %xmm8 leal 1(%rdx), %ecx cmpl %ecx, %esi vmovsd %xmm8, (%rax) jg .L543 jmp .L531 .p2align 4,,10 .p2align 3 .L541: leaq 80(%rsp), %rsi movq %r12, %rdi call Parse_Num_Term <<<< missing vzeroupper movl 0(%r13), %esi movl 80(%rsp), %eax vmovapd (%rsp), %ymm0 cmpl %eax, %esi