diff options
author | Richard Henderson <rth@redhat.com> | 2014-03-18 12:59:54 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2014-03-18 12:59:54 -0700 |
commit | 58ca6edfe58eed4b038c6fd8973c1052898e78e5 (patch) | |
tree | 27bd8f6d218919a946ab36edc9ecf977777d78f3 /gcc | |
parent | 7485aeea44b120d4d64e85401f08d172426a81fe (diff) | |
download | gcc-58ca6edfe58eed4b038c6fd8973c1052898e78e5.zip gcc-58ca6edfe58eed4b038c6fd8973c1052898e78e5.tar.gz gcc-58ca6edfe58eed4b038c6fd8973c1052898e78e5.tar.bz2 |
re PR target/60562 (FAIL: gcc.target/i386/excess-precision-3.c execution test after r208587)
PR target/60562
* config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
From-SVN: r208662
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 18 |
2 files changed, 14 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 520b189..e33cb61 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-03-18 Richard Henderson <rth@redhat.com> + + PR target/60562 + * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to + be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT. 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a824e78..abc22f2 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4701,15 +4701,6 @@ } }) -(define_insn "*float<SWI48x:mode><MODEF:mode>2_i387" - [(set (match_operand:MODEF 0 "register_operand" "=f") - (float:MODEF (match_operand:SWI48x 1 "nonimmediate_operand" "m")))] - "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH)" - "fild%Z1\t%1" - [(set_attr "type" "fmov") - (set_attr "mode" "<MODEF:MODE>") - (set_attr "fp_int_src" "true")]) - (define_insn "*float<SWI48:mode><MODEF:mode>2_sse" [(set (match_operand:MODEF 0 "register_operand" "=f,x,x") (float:MODEF @@ -4743,6 +4734,15 @@ (symbol_ref "true"))) ]) +(define_insn "*float<SWI48x:mode><MODEF:mode>2_i387" + [(set (match_operand:MODEF 0 "register_operand" "=f") + (float:MODEF (match_operand:SWI48x 1 "nonimmediate_operand" "m")))] + "TARGET_80387 && X87_ENABLE_FLOAT (<MODEF:MODE>mode, <SWI48x:MODE>mode)" + "fild%Z1\t%1" + [(set_attr "type" "fmov") + (set_attr "mode" "<MODEF: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. |