summaryrefslogtreecommitdiff
path: root/lib/builtins/hexagon/sfsqrt_opt.S
diff options
context:
space:
mode:
Diffstat (limited to 'lib/builtins/hexagon/sfsqrt_opt.S')
-rw-r--r--lib/builtins/hexagon/sfsqrt_opt.S82
1 files changed, 0 insertions, 82 deletions
diff --git a/lib/builtins/hexagon/sfsqrt_opt.S b/lib/builtins/hexagon/sfsqrt_opt.S
deleted file mode 100644
index 7f619002774f9..0000000000000
--- a/lib/builtins/hexagon/sfsqrt_opt.S
+++ /dev/null
@@ -1,82 +0,0 @@
-//===----------------------Hexagon builtin routine ------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
- .macro FUNCTION_BEGIN name
- .text
- .p2align 5
- .globl \name
- .type \name, @function
-\name:
- .endm
-
- .macro FUNCTION_END name
- .size \name, . - \name
- .endm
-
-#define RIN r0
-#define S r0
-#define H r1
-#define D r2
-#define E r3
-#define HALF r4
-#define R r5
-
-#define Q6_ALIAS(TAG) .global __qdsp_##TAG ; .set __qdsp_##TAG, __hexagon_##TAG
-#define FAST_ALIAS(TAG) .global __hexagon_fast_##TAG ; .set __hexagon_fast_##TAG, __hexagon_##TAG
-#define FAST2_ALIAS(TAG) .global __hexagon_fast2_##TAG ; .set __hexagon_fast2_##TAG, __hexagon_##TAG
-
-FUNCTION_BEGIN __hexagon_sqrtf
- {
- E,p0 = sfinvsqrta(RIN)
- R = sffixupr(RIN)
- HALF = ##0x3f000000 // 0.5
- r1:0 = combine(#0,#0) // clear S/H
- }
- {
- S += sfmpy(E,R):lib // S0
- H += sfmpy(E,HALF):lib // H0
- D = HALF
- E = R
- }
- {
- D -= sfmpy(S,H):lib // d0
- p1 = sfclass(R,#1) // is zero?
- //E -= sfmpy(S,S):lib // e0
- }
- {
- S += sfmpy(S,D):lib // S1
- H += sfmpy(H,D):lib // H1
- D = HALF
- E = R
- }
- {
- D -= sfmpy(S,H):lib // d0
- E -= sfmpy(S,S):lib // e0
- }
- {
- S += sfmpy(H,E):lib // S2
- H += sfmpy(H,D):lib // H2
- D = HALF
- E = R
- }
- {
- //D -= sfmpy(S,H):lib // d2
- E -= sfmpy(S,S):lib // e2
- if (p1) r0 = or(r0,R) // sqrt(-0.0) = -0.0
- }
- {
- S += sfmpy(H,E,p0):scale // S3
- jumpr r31
- }
-
-FUNCTION_END __hexagon_sqrtf
-
-Q6_ALIAS(sqrtf)
-FAST_ALIAS(sqrtf)
-FAST2_ALIAS(sqrtf)