aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2014-10-15 04:17:30 +0000
committerMax Filippov <jcmvbkbc@gcc.gnu.org>2014-10-15 04:17:30 +0000
commitcf14ea9fe3ae00ccaf543963c426da7ba3368246 (patch)
tree02e6a8322a340ad402e350f0290d99df547e8139 /gcc
parent5d12b7688f5dae812f4535a66d141a2de6420d17 (diff)
downloadgcc-cf14ea9fe3ae00ccaf543963c426da7ba3368246.zip
gcc-cf14ea9fe3ae00ccaf543963c426da7ba3368246.tar.gz
gcc-cf14ea9fe3ae00ccaf543963c426da7ba3368246.tar.bz2
xtensa: drop unimplemented floating point operations
xtensa ISA never implemented FP division, reciprocal, square root and inverse square root as single opcode. Remove patterns that can emit them. 2014-10-09 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2): remove. From-SVN: r216233
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/xtensa/xtensa.md44
2 files changed, 6 insertions, 43 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6edd51a..71f1575 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
+ remove.
+
2014-10-14 Andrew Pinski <apinski@cavium.com>
* explow.c (convert_memory_address_addr_space): Rename to ...
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index dddc6ab..0e3f033 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -82,7 +82,7 @@
;; Attributes.
(define_attr "type"
- "unknown,jump,call,load,store,move,arith,multi,nop,farith,fmadd,fdiv,fsqrt,fconv,fload,fstore,mul16,mul32,div32,mac16,rsr,wsr,entry"
+ "unknown,jump,call,load,store,move,arith,multi,nop,farith,fmadd,fconv,fload,fstore,mul16,mul32,div32,mac16,rsr,wsr,entry"
(const_string "unknown"))
(define_attr "mode"
@@ -360,26 +360,6 @@
(set_attr "mode" "SI")
(set_attr "length" "3")])
-(define_insn "divsf3"
- [(set (match_operand:SF 0 "register_operand" "=f")
- (div:SF (match_operand:SF 1 "register_operand" "f")
- (match_operand:SF 2 "register_operand" "f")))]
- "TARGET_HARD_FLOAT_DIV"
- "div.s\t%0, %1, %2"
- [(set_attr "type" "fdiv")
- (set_attr "mode" "SF")
- (set_attr "length" "3")])
-
-(define_insn "*recipsf2"
- [(set (match_operand:SF 0 "register_operand" "=f")
- (div:SF (match_operand:SF 1 "const_float_1_operand" "")
- (match_operand:SF 2 "register_operand" "f")))]
- "TARGET_HARD_FLOAT_RECIP && flag_unsafe_math_optimizations"
- "recip.s\t%0, %2"
- [(set_attr "type" "fdiv")
- (set_attr "mode" "SF")
- (set_attr "length" "3")])
-
;; Remainders.
@@ -404,28 +384,6 @@
(set_attr "length" "3")])
-;; Square roots.
-
-(define_insn "sqrtsf2"
- [(set (match_operand:SF 0 "register_operand" "=f")
- (sqrt:SF (match_operand:SF 1 "register_operand" "f")))]
- "TARGET_HARD_FLOAT_SQRT"
- "sqrt.s\t%0, %1"
- [(set_attr "type" "fsqrt")
- (set_attr "mode" "SF")
- (set_attr "length" "3")])
-
-(define_insn "*rsqrtsf2"
- [(set (match_operand:SF 0 "register_operand" "=f")
- (div:SF (match_operand:SF 1 "const_float_1_operand" "")
- (sqrt:SF (match_operand:SF 2 "register_operand" "f"))))]
- "TARGET_HARD_FLOAT_RSQRT && flag_unsafe_math_optimizations"
- "rsqrt.s\t%0, %2"
- [(set_attr "type" "fsqrt")
- (set_attr "mode" "SF")
- (set_attr "length" "3")])
-
-
;; Absolute value.
(define_insn "abssi2"