From 7d70a287544dd915b66a5658a3857ebecb8b3583 Mon Sep 17 00:00:00 2001
From: Mahesh Bodapati <mbodapat@xilinx.com>
Date: Tue, 17 Jan 2017 17:11:04 +0530
Subject: [PATCH 22/54] [Patch,microblaze]: Inline Expansion of fsqrt builtin.
 The changes are made in the patch for the inline expansion of the fsqrt
 builtin with fqrt instruction. The sqrt math function takes double as
 argument and return double as argument. The pattern is selected while
 expanding the unary op through expand_unop which passes DFmode and the DFmode
 pattern was not there returning zero. Thus the sqrt math function is not
 inlined and expanded. The pattern with DFmode argument is added. Also the
 source and destination argument is not same the DF through two different
 consecutive registers with lower 32 bit is the argument passed to sqrt and
 the higher 32 bit is zero. If the source and destinations are different the
 DFmode 64 bits registers is not set properly giving the problem in runtime.
 Such changes are taken care in the implementation of the pattern for DFmode
 for inline expansion of the sqrt.

ChangeLog:
2015-06-16  Ajit Agarwal  <ajitkum@xilinx.com>
            Nagaraju Mekala <nmekala@xilinx.com>

	* config/microblaze/microblaze.md (sqrtdf2): New
	pattern.

Signed-off-by:Ajit Agarwal ajitkum@xilinx.com
              Nagaraju Mekala nmekala@xilinx.com
---
 gcc/config/microblaze/microblaze.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 7bbdbe1..3a53e24 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -449,6 +449,20 @@
   (set_attr "mode"      "SF")
   (set_attr "length"    "4")])
 
+(define_insn "sqrtdf2"
+  [(set (match_operand:DF 0 "register_operand" "=d")
+        (sqrt:DF (match_operand:DF 1 "register_operand" "dG")))]
+  "TARGET_HARD_FLOAT && TARGET_FLOAT_SQRT"
+  {
+    if (REGNO (operands[0]) == REGNO (operands[1]))
+      return "fsqrt\t%0,%1";
+    else
+      return "fsqrt\t%0,%1\n\taddk\t%D0,%D1,r0";
+  }
+  [(set_attr "type"     "fsqrt")
+   (set_attr "mode"      "SF")
+   (set_attr "length"    "4")])
+
 (define_insn "fix_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=d")
         (fix:SI (match_operand:SF 1 "register_operand" "d")))]
-- 
2.7.4

