From: Richard Henderson Date: Tue, 18 Mar 2014 19:59:54 +0000 (-0700) Subject: re PR target/60562 (FAIL: gcc.target/i386/excess-precision-3.c execution test after... X-Git-Tag: releases/gcc-4.9.0~399 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58ca6edfe58eed4b038c6fd8973c1052898e78e5;p=thirdparty%2Fgcc.git re PR target/60562 (FAIL: gcc.target/i386/excess-precision-3.c execution test after r208587) PR target/60562 * config/i386/i386.md (*float2_i387): Move down to be shadowed by *float2_sse. Test X87_ENABLE_FLOAT. From-SVN: r208662 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 520b1894d25e..e33cb61a5acc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-03-18 Richard Henderson + + PR target/60562 + * config/i386/i386.md (*float2_i387): Move down to + be shadowed by *float2_sse. Test X87_ENABLE_FLOAT. 2014-03-18 Basile Starynkevitch diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a824e78d3946..abc22f234e00 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4701,15 +4701,6 @@ } }) -(define_insn "*float2_i387" - [(set (match_operand:MODEF 0 "register_operand" "=f") - (float:MODEF (match_operand:SWI48x 1 "nonimmediate_operand" "m")))] - "TARGET_80387 && !(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH)" - "fild%Z1\t%1" - [(set_attr "type" "fmov") - (set_attr "mode" "") - (set_attr "fp_int_src" "true")]) - (define_insn "*float2_sse" [(set (match_operand:MODEF 0 "register_operand" "=f,x,x") (float:MODEF @@ -4743,6 +4734,15 @@ (symbol_ref "true"))) ]) +(define_insn "*float2_i387" + [(set (match_operand:MODEF 0 "register_operand" "=f") + (float:MODEF (match_operand:SWI48x 1 "nonimmediate_operand" "m")))] + "TARGET_80387 && X87_ENABLE_FLOAT (mode, mode)" + "fild%Z1\t%1" + [(set_attr "type" "fmov") + (set_attr "mode" "") + (set_attr "fp_int_src" "true")]) + ;; Try TARGET_USE_VECTOR_CONVERTS, but not so hard as to require extra memory ;; slots when !TARGET_INTER_UNIT_MOVES_TO_VEC disables the general_regs ;; alternative in sse2_loadld.