Hello! optimize_size clears TARGET_INTEGER_DFMODE_MOVES, so we can simplify movdf_internal insn condition a bit.
2011-05-15 Uros Bizjak <ubiz...@gmail.com> * config/i386/i386.md (*movdf_internal): Simplify insn condition. Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN. Uros. Index: config/i386/i386.md =================================================================== --- config/i386/i386.md (revision 173771) +++ config/i386/i386.md (working copy) @@ -3050,15 +3050,14 @@ && (!can_create_pseudo_p () || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || GET_CODE (operands[1]) != CONST_DOUBLE - || (optimize_function_for_size_p (cfun) + || (!TARGET_INTEGER_DFMODE_MOVES && ((!(TARGET_SSE2 && TARGET_SSE_MATH) && standard_80387_constant_p (operands[1]) > 0) || (TARGET_SSE2 && TARGET_SSE_MATH && standard_sse_constant_p (operands[1]))) && !memory_operand (operands[0], DFmode)) || ((TARGET_INTEGER_DFMODE_MOVES - || (optimize_function_for_size_p (cfun) - && !TARGET_MEMORY_MISMATCH_STALL)) + || !TARGET_MEMORY_MISMATCH_STALL) && memory_operand (operands[0], DFmode)))" { switch (which_alternative)