[PATCH] lib/int_sqrt.c: Optimize square root function

From: Anshul Garg
Date: Mon Feb 02 2015 - 12:13:23 EST


From: Anshul Garg <aksgarg1989@xxxxxxxxx>

Unnecessary instructions are executing even though m is
greater than x so added logic to make m less than equal to
x before performing these operations.

Signed-off-by: Anshul Garg <aksgarg1989@xxxxxxxxx>
---
lib/int_sqrt.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/lib/int_sqrt.c b/lib/int_sqrt.c
index 1ef4cc3..64ae722 100644
--- a/lib/int_sqrt.c
+++ b/lib/int_sqrt.c
@@ -22,6 +22,9 @@ unsigned long int_sqrt(unsigned long x)
return x;

m = 1UL << (BITS_PER_LONG - 2);
+
+ while (m > x)
+ m >>= 2;
while (m != 0) {
b = y + m;
y >>= 1;
--
1.7.9.5


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/