aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2014-03-18 12:59:54 -0700
committerRichard Henderson <rth@gcc.gnu.org>2014-03-18 12:59:54 -0700
commit58ca6edfe58eed4b038c6fd8973c1052898e78e5 (patch)
tree27bd8f6d218919a946ab36edc9ecf977777d78f3 /gcc
parent7485aeea44b120d4d64e85401f08d172426a81fe (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/i386/i386.md18
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.