Blame sysdeps/ia64/fpu/s_atanf.S

Packit Service 82fcde
.file "atanf.s"
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
// Copyright (c) 2000 - 2003, Intel Corporation
Packit Service 82fcde
// All rights reserved.
Packit Service 82fcde
//
Packit Service 82fcde
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
Packit Service 82fcde
//
Packit Service 82fcde
// Redistribution and use in source and binary forms, with or without
Packit Service 82fcde
// modification, are permitted provided that the following conditions are
Packit Service 82fcde
// met:
Packit Service 82fcde
//
Packit Service 82fcde
// * Redistributions of source code must retain the above copyright
Packit Service 82fcde
// notice, this list of conditions and the following disclaimer.
Packit Service 82fcde
//
Packit Service 82fcde
// * Redistributions in binary form must reproduce the above copyright
Packit Service 82fcde
// notice, this list of conditions and the following disclaimer in the
Packit Service 82fcde
// documentation and/or other materials provided with the distribution.
Packit Service 82fcde
//
Packit Service 82fcde
// * The name of Intel Corporation may not be used to endorse or promote
Packit Service 82fcde
// products derived from this software without specific prior written
Packit Service 82fcde
// permission.
Packit Service 82fcde
Packit Service 82fcde
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit Service 82fcde
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit Service 82fcde
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit Service 82fcde
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS
Packit Service 82fcde
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
Packit Service 82fcde
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
Packit Service 82fcde
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
Packit Service 82fcde
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
Packit Service 82fcde
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
Packit Service 82fcde
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
Packit Service 82fcde
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 82fcde
//
Packit Service 82fcde
// Intel Corporation is the author of this code, and requests that all
Packit Service 82fcde
// problem reports or change requests be submitted to it directly at
Packit Service 82fcde
// http://www.intel.com/software/products/opensource/libraries/num.htm.
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
// History
Packit Service 82fcde
//==============================================================
Packit Service 82fcde
// 02/20/00 Initial version
Packit Service 82fcde
// 08/17/00 Changed predicate register macro-usage to direct predicate
Packit Service 82fcde
//          names due to an assembler bug.
Packit Service 82fcde
// 02/06/02 Corrected .section statement
Packit Service 82fcde
// 05/20/02 Cleaned up namespace and sf0 syntax
Packit Service 82fcde
// 02/06/03 Reordered header: .section, .global, .proc, .align;
Packit Service 82fcde
//          added missing bundling
Packit Service 82fcde
Packit Service 82fcde
//
Packit Service 82fcde
// Assembly macros
Packit Service 82fcde
//==============================================================
Packit Service 82fcde
Packit Service 82fcde
// integer registers used
Packit Service 82fcde
EXP_Addr1          = r33
Packit Service 82fcde
EXP_Addr2          = r34
Packit Service 82fcde
Packit Service 82fcde
// floating point registers used
Packit Service 82fcde
atanf_coeff_R4     = f32
Packit Service 82fcde
atanf_coeff_R5     = f33
Packit Service 82fcde
atanf_coeff_R1     = f34
Packit Service 82fcde
atanf_coeff_R2     = f35
Packit Service 82fcde
Packit Service 82fcde
atanf_coeff_R3     = f36
Packit Service 82fcde
atanf_coeff_P1     = f37
Packit Service 82fcde
atanf_coeff_Q6     = f38
Packit Service 82fcde
atanf_coeff_Q7     = f39
Packit Service 82fcde
atanf_coeff_Q8     = f40
Packit Service 82fcde
Packit Service 82fcde
atanf_coeff_Q9     = f41
Packit Service 82fcde
atanf_coeff_Q4     = f42
Packit Service 82fcde
atanf_coeff_Q5     = f43
Packit Service 82fcde
atanf_coeff_Q2     = f44
Packit Service 82fcde
atanf_coeff_Q3     = f45
Packit Service 82fcde
Packit Service 82fcde
atanf_coeff_P5     = f46
Packit Service 82fcde
atanf_coeff_P6     = f47
Packit Service 82fcde
atanf_coeff_Q0     = f48
Packit Service 82fcde
atanf_coeff_Q1     = f49
Packit Service 82fcde
atanf_coeff_P7     = f50
Packit Service 82fcde
Packit Service 82fcde
atanf_coeff_P8     = f51
Packit Service 82fcde
atanf_coeff_P3     = f52
Packit Service 82fcde
atanf_coeff_P4     = f53
Packit Service 82fcde
atanf_coeff_P9     = f54
Packit Service 82fcde
atanf_coeff_P10    = f55
Packit Service 82fcde
Packit Service 82fcde
atanf_coeff_P2     = f56
Packit Service 82fcde
atanf_piby2        = f57
Packit Service 82fcde
atanf_z            = f58
Packit Service 82fcde
atanf_b            = f59
Packit Service 82fcde
atanf_zsq          = f60
Packit Service 82fcde
Packit Service 82fcde
atanf_sgn_x        = f61
Packit Service 82fcde
atanf_sgnx_piby2   = f62
Packit Service 82fcde
atanf_abs_x        = f63
Packit Service 82fcde
atanf_t            = f64
Packit Service 82fcde
atanf_xcub         = f65
Packit Service 82fcde
Packit Service 82fcde
atanf_tsq          = f66
Packit Service 82fcde
atanf_t4           = f67
Packit Service 82fcde
atanf_x5           = f68
Packit Service 82fcde
atanf_x6           = f69
Packit Service 82fcde
atanf_x11          = f70
Packit Service 82fcde
Packit Service 82fcde
atanf_poly_p1      = f71
Packit Service 82fcde
atanf_poly_p2      = f72
Packit Service 82fcde
atanf_poly_p3      = f73
Packit Service 82fcde
atanf_poly_p4      = f74
Packit Service 82fcde
atanf_poly_p5      = f75
Packit Service 82fcde
Packit Service 82fcde
atanf_poly_q1      = f76
Packit Service 82fcde
atanf_poly_q2      = f77
Packit Service 82fcde
atanf_poly_q3      = f78
Packit Service 82fcde
atanf_poly_q4      = f79
Packit Service 82fcde
atanf_poly_q5      = f80
Packit Service 82fcde
Packit Service 82fcde
atanf_poly_q       = f81
Packit Service 82fcde
atanf_poly_r1      = f81
Packit Service 82fcde
atanf_poly_r2      = f82
Packit Service 82fcde
atanf_poly_r3      = f83
Packit Service 82fcde
atanf_bsq          = f84
Packit Service 82fcde
atanf_z4           = f85
Packit Service 82fcde
Packit Service 82fcde
atanf_z5           = f86
Packit Service 82fcde
atanf_z8           = f87
Packit Service 82fcde
atanf_z13          = f88
Packit Service 82fcde
atanf_poly_r2      = f89
Packit Service 82fcde
atanf_poly_r1      = f90
Packit Service 82fcde
Packit Service 82fcde
atanf_z8_bsq       = f91
Packit Service 82fcde
atanf_poly_r       = f92
Packit Service 82fcde
atanf_z21_poly_r   = f93
Packit Service 82fcde
atanf_answer       = f8
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
// predicate registers used
Packit Service 82fcde
//atanf_pred_LE1     = p6
Packit Service 82fcde
//atanf_pred_GT1     = p7
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
RODATA
Packit Service 82fcde
Packit Service 82fcde
.align 16
Packit Service 82fcde
Packit Service 82fcde
LOCAL_OBJECT_START(atanf_coeff_1_table)
Packit Service 82fcde
data8 0x40c4c241be751ff2  // r4
Packit Service 82fcde
data8 0x40e9f300c2f3070b  // r5
Packit Service 82fcde
data8 0x409babffef772075  // r3
Packit Service 82fcde
data8 0xbfd5555512191621  // p1
Packit Service 82fcde
data8 0x3fc9997e7afbff4e  // p2  = q8
Packit Service 82fcde
data8 0xbfd5555512191621  // p1  = q9
Packit Service 82fcde
data8 0x3f97105b4160f86b  // p8  = q2
Packit Service 82fcde
data8 0xbfa6e10ba401393f  // p7  = q3
Packit Service 82fcde
data8 0x3f522e5d33bc9baa  // p10 = q0
Packit Service 82fcde
data8 0xbf7deaadaa336451  // p9  = q1
Packit Service 82fcde
data8 0xbfc2473c5145ee38  // p3
Packit Service 82fcde
data8 0x3fbc4f512b1865f5  // p4
Packit Service 82fcde
data8 0x3fc9997e7afbff4e  // p2
Packit Service 82fcde
data8 0x3ff921fb54442d18  // pi/2
Packit Service 82fcde
LOCAL_OBJECT_END(atanf_coeff_1_table)
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
LOCAL_OBJECT_START(atanf_coeff_2_table)
Packit Service 82fcde
data8 0x4035000000004284  // r1
Packit Service 82fcde
data8 0x406cdffff336a59b  // r2
Packit Service 82fcde
data8 0x3fbc4f512b1865f5  // p4 = q6
Packit Service 82fcde
data8 0xbfc2473c5145ee38  // p3 = q7
Packit Service 82fcde
data8 0x3fb142a73d7c54e3  // p6 = q4
Packit Service 82fcde
data8 0xbfb68eed6a8cfa32  // p5 = q5
Packit Service 82fcde
data8 0xbfb68eed6a8cfa32  // p5
Packit Service 82fcde
data8 0x3fb142a73d7c54e3  // p6
Packit Service 82fcde
data8 0xbfa6e10ba401393f  // p7
Packit Service 82fcde
data8 0x3f97105b4160f86b  // p8
Packit Service 82fcde
data8 0xbf7deaadaa336451  // p9
Packit Service 82fcde
data8 0x3f522e5d33bc9baa  // p10
Packit Service 82fcde
LOCAL_OBJECT_END(atanf_coeff_2_table)
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
.section .text
Packit Service 82fcde
GLOBAL_LIBM_ENTRY(atanf)
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     alloc      r32                  = ar.pfs,1,2,0,0
Packit Service 82fcde
     frcpa.s1  atanf_z,p0   =    f1,f8
Packit Service 82fcde
     addl      EXP_Addr2           =    @ltoff(atanf_coeff_2_table),gp
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     addl      EXP_Addr1 =    @ltoff(atanf_coeff_1_table),gp
Packit Service 82fcde
     fma.s1    atanf_t   =    f8,f8,f0
Packit Service 82fcde
     nop.i                 999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fmerge.s  atanf_sgn_x    =    f8,f1
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ld8       EXP_Addr1      =    [EXP_Addr1]
Packit Service 82fcde
     fmerge.s  atanf_abs_x    =    f1,f8
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ld8       EXP_Addr2 =    [EXP_Addr2]
Packit Service 82fcde
     nop.f                 999
Packit Service 82fcde
     nop.i                 999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fclass.m  p8,p0   =    f8,0x7	// @zero
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fcmp.eq.unc.s0 p9,p10    =    f8,f1
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_R4,atanf_coeff_R5 =    [EXP_Addr1],16
Packit Service 82fcde
     fnma.s1   atanf_b                       =    f8,atanf_z,f1
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_R1,atanf_coeff_R2 =    [EXP_Addr2],16
Packit Service 82fcde
     fma.s1    atanf_zsq                     =    atanf_z,atanf_z,f0
Packit Service 82fcde
     nop.i                                     999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_R3,atanf_coeff_P1 =    [EXP_Addr1],16
Packit Service 82fcde
     fma.s1    atanf_xcub                    =    f8,atanf_t,f0
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_Q6,atanf_coeff_Q7 =    [EXP_Addr2],16
Packit Service 82fcde
     fma.s1    atanf_tsq                     =    atanf_t,atanf_t,f0
Packit Service 82fcde
     nop.i                                     999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd          atanf_coeff_Q8,atanf_coeff_Q9 =    [EXP_Addr1],16
Packit Service 82fcde
//     fcmp.le.s1     atanf_pred_LE1,atanf_pred_GT1 =    atanf_abs_x,f1
Packit Service 82fcde
     fcmp.le.s1     p6,p7 =    atanf_abs_x,f1
Packit Service 82fcde
     nop.i                                          999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_Q4,atanf_coeff_Q5 =    [EXP_Addr2],16
Packit Service 82fcde
     nop.f                                     999
Packit Service 82fcde
     nop.i                                     999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_Q2,atanf_coeff_Q3 =    [EXP_Addr1],16
Packit Service 82fcde
     fclass.m  p8,p0                  =    f8,0xe7	// @inf|@qnan|@snan|@zero
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_P5,atanf_coeff_P6 =    [EXP_Addr2],16
Packit Service 82fcde
     nop.f                                     999
Packit Service 82fcde
     nop.i                                     999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_Q0,atanf_coeff_Q1 =    [EXP_Addr1],16
Packit Service 82fcde
     nop.f                                     999
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_P7,atanf_coeff_P8 =    [EXP_Addr2],16
Packit Service 82fcde
     nop.f                                     999
Packit Service 82fcde
     nop.i                                     999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_P3,atanf_coeff_P4 =    [EXP_Addr1],16
Packit Service 82fcde
     fma.s1    atanf_bsq                     =    atanf_b,atanf_b,f0
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_P9,atanf_coeff_P10     =    [EXP_Addr2]
Packit Service 82fcde
     fma.s1    atanf_z4                           =    atanf_zsq,atanf_zsq,f0
Packit Service 82fcde
     nop.i                                          999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     ldfpd     atanf_coeff_P2,atanf_piby2    =    [EXP_Addr1]
Packit Service 82fcde
     fma.s1    atanf_x6                      =    atanf_t,atanf_tsq,f0
Packit Service 82fcde
     nop.i                                     999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_t4  =    atanf_tsq,atanf_tsq,f0
Packit Service 82fcde
     nop.i                 999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfb
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_x5  =    atanf_t,atanf_xcub,f0
Packit Service 82fcde
(p8)  br.cond.spnt   ATANF_X_INF_NAN_ZERO
Packit Service 82fcde
}
Packit Service 82fcde
;;
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r1  =    atanf_b,atanf_coeff_R1,f1
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r3  =    atanf_b,atanf_coeff_R5,atanf_coeff_R4
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r2  =    atanf_b,atanf_coeff_R3,atanf_coeff_R2
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_z8  =    atanf_z4,atanf_z4,f0
Packit Service 82fcde
     nop.i                 999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q2  =    atanf_t,atanf_coeff_Q5,atanf_coeff_Q4
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q3  =    atanf_t,atanf_coeff_Q7,atanf_coeff_Q6
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_z5  =    atanf_z,atanf_z4,f0
Packit Service 82fcde
     nop.i                 999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q1  =    atanf_t,atanf_coeff_Q9,atanf_coeff_Q8
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q4  =    atanf_t,atanf_coeff_Q1,atanf_coeff_Q0
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q5  =    atanf_t,atanf_coeff_Q3,atanf_coeff_Q2
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p4  =    f8,atanf_coeff_P1,f0
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p5  =    atanf_t,atanf_coeff_P4,atanf_coeff_P3
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r1  =    atanf_z8,atanf_poly_r1,f0
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_z8_bsq   =    atanf_z8,atanf_bsq,f0
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q2  =    atanf_tsq,atanf_poly_q3,atanf_poly_q2
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r2  =    atanf_bsq,atanf_poly_r3,atanf_poly_r2
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p2  =    atanf_t,atanf_coeff_P8,atanf_coeff_P7
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q1  =    atanf_poly_q1,f1,atanf_tsq
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_z13 =    atanf_z5,atanf_z8,f0
Packit Service 82fcde
     nop.i                 999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p1  =    atanf_t,atanf_coeff_P10,atanf_coeff_P9
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p4  =    atanf_t,atanf_poly_p4,f8
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q4  =    atanf_tsq,atanf_poly_q5,atanf_poly_q4
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p3  =    atanf_t,atanf_coeff_P6,atanf_coeff_P5
Packit Service 82fcde
     nop.i                      999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p5  =    atanf_t,atanf_poly_p5,atanf_coeff_P2
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                 999
Packit Service 82fcde
     fma.s1    atanf_x11 =    atanf_x5,atanf_x6,f0
Packit Service 82fcde
     nop.i                 999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_r   =    atanf_z8_bsq,atanf_poly_r2,atanf_poly_r1
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                           999
Packit Service 82fcde
     fma.s0       atanf_sgnx_piby2    =    atanf_sgn_x,atanf_piby2,f0
Packit Service 82fcde
     nop.i                           999
Packit Service 82fcde
}
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q2  =    atanf_t4,atanf_poly_q1,atanf_poly_q2
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p1  =    atanf_tsq,atanf_poly_p1,atanf_poly_p2
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p4  =    atanf_x5,atanf_poly_p5,atanf_poly_p4
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                           999
Packit Service 82fcde
     fma.s1    atanf_z21_poly_r    =    atanf_z13,atanf_poly_r,f0
Packit Service 82fcde
     nop.i                           999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_q   =    atanf_t4,atanf_poly_q2,atanf_poly_q4
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
     nop.m                      999
Packit Service 82fcde
     fma.s1    atanf_poly_p1  =    atanf_tsq,atanf_poly_p1,atanf_poly_p3
Packit Service 82fcde
     nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfi
Packit Service 82fcde
                    nop.m                      999
Packit Service 82fcde
//(atanf_pred_GT1)    fnma.s    atanf_answer   =    atanf_poly_q,atanf_z21_poly_r,atanf_sgnx_piby2
Packit Service 82fcde
(p7)    fnma.s.s0    atanf_answer   =    atanf_poly_q,atanf_z21_poly_r,atanf_sgnx_piby2
Packit Service 82fcde
                    nop.i                      999;;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
{     .mfb
Packit Service 82fcde
                    nop.m                      999
Packit Service 82fcde
//(atanf_pred_LE1)    fma.s     atanf_answer   =    atanf_x11,atanf_poly_p1,atanf_poly_p4
Packit Service 82fcde
(p6)    fma.s.s0     atanf_answer   =    atanf_x11,atanf_poly_p1,atanf_poly_p4
Packit Service 82fcde
                    br.ret.sptk b0
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
ATANF_X_INF_NAN_ZERO:
Packit Service 82fcde
Packit Service 82fcde
{ .mfi
Packit Service 82fcde
      nop.m 0
Packit Service 82fcde
      fclass.m p8,p9 = f8,0x23  // @inf
Packit Service 82fcde
      nop.i 0
Packit Service 82fcde
}
Packit Service 82fcde
;;
Packit Service 82fcde
{ .mfi
Packit Service 82fcde
      nop.m 0
Packit Service 82fcde
(p8)  fmerge.s f8 = f8, atanf_piby2
Packit Service 82fcde
      nop.i 0
Packit Service 82fcde
}
Packit Service 82fcde
;;
Packit Service 82fcde
{ .mfb
Packit Service 82fcde
      nop.m 0
Packit Service 82fcde
      fnorm.s.s0 f8 = f8
Packit Service 82fcde
      br.ret.sptk b0
Packit Service 82fcde
}
Packit Service 82fcde
;;
Packit Service 82fcde
Packit Service 82fcde
GLOBAL_LIBM_END(atanf)
Packit Service 82fcde
libm_alias_float_other (atan, atan)