https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89397
--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- Index: config/i386/i386.c =================================================================== --- config/i386/i386.c (revision 269040) +++ config/i386/i386.c (working copy) @@ -50689,7 +50689,7 @@ static void ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) { - if (!TARGET_80387 && !TARGET_SSE_MATH) + if (!TARGET_80387 && !(TARGET_SSE && TARGET_SSE_MATH)) return; tree exceptions_var = create_tmp_var_raw (integer_type_node); if (TARGET_80387) @@ -50724,7 +50724,7 @@ tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr); *update = build2 (COMPOUND_EXPR, void_type_node, *update, update_fldenv); } - if (TARGET_SSE_MATH) + if (TARGET_SSE && TARGET_SSE_MATH) { tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node); tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node);