Message ID | AANLkTikJE7EB+O_f_v3akJNnwv+_pwh5NjwAPm55tMXG@mail.gmail.com |
---|---|
State | New |
Headers | show |
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7553db0..cb43620 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -21798,7 +21798,9 @@ void ix86_split_call_vzeroupper (rtx insn, rtx vzeroupper) { rtx call = XVECEXP (PATTERN (insn), 0, 0); - emit_insn (gen_avx_vzeroupper (vzeroupper)); + /* Don't emit vzeroupper if callee doesn't return. */ + if (!find_reg_note (insn, REG_NORETURN, NULL)) + emit_insn (gen_avx_vzeroupper (vzeroupper)); emit_call_insn (call); }