github.com/MangoDowner/go-gm@v0.0.0-20180818020936-8baa2bd4408c/src/math/erfc_s390x.s (about)

     1  // Copyright 2017 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  #include "textflag.h"
     6  
     7  #define NegInf 0xFFF0000000000000
     8  
     9  // Minimax polynomial coefficients and other constants
    10  DATA ·erfcrodataL38<> + 0(SB)/8, $.234875460637085087E-01
    11  DATA ·erfcrodataL38<> + 8(SB)/8, $.234469449299256284E-01
    12  DATA ·erfcrodataL38<> + 16(SB)/8, $-.606918710392844955E-04
    13  DATA ·erfcrodataL38<> + 24(SB)/8, $-.198827088077636213E-04
    14  DATA ·erfcrodataL38<> + 32(SB)/8, $.257805645845475331E-06
    15  DATA ·erfcrodataL38<> + 40(SB)/8, $-.184427218110620284E-09
    16  DATA ·erfcrodataL38<> + 48(SB)/8, $.122408098288933181E-10
    17  DATA ·erfcrodataL38<> + 56(SB)/8, $.484691106751495392E-07
    18  DATA ·erfcrodataL38<> + 64(SB)/8, $-.150147637632890281E-08
    19  DATA ·erfcrodataL38<> + 72(SB)/8, $23.999999999973521625
    20  DATA ·erfcrodataL38<> + 80(SB)/8, $27.226017111108365754
    21  DATA ·erfcrodataL38<> + 88(SB)/8, $-2.0
    22  DATA ·erfcrodataL38<> + 96(SB)/8, $0.100108802034478228E+00
    23  DATA ·erfcrodataL38<> + 104(SB)/8, $0.244588413746558125E+00
    24  DATA ·erfcrodataL38<> + 112(SB)/8, $-.669188879646637174E-01
    25  DATA ·erfcrodataL38<> + 120(SB)/8, $0.151311447000953551E-01
    26  DATA ·erfcrodataL38<> + 128(SB)/8, $-.284720833493302061E-02
    27  DATA ·erfcrodataL38<> + 136(SB)/8, $0.455491239358743212E-03
    28  DATA ·erfcrodataL38<> + 144(SB)/8, $-.631850539280720949E-04
    29  DATA ·erfcrodataL38<> + 152(SB)/8, $0.772532660726086679E-05
    30  DATA ·erfcrodataL38<> + 160(SB)/8, $-.843706007150936940E-06
    31  DATA ·erfcrodataL38<> + 168(SB)/8, $-.735330214904227472E-08
    32  DATA ·erfcrodataL38<> + 176(SB)/8, $0.753002008837084967E-09
    33  DATA ·erfcrodataL38<> + 184(SB)/8, $0.832482036660624637E-07
    34  DATA ·erfcrodataL38<> + 192(SB)/8, $-0.75
    35  DATA ·erfcrodataL38<> + 200(SB)/8, $.927765678007128609E-01
    36  DATA ·erfcrodataL38<> + 208(SB)/8, $.903621209344751506E-01
    37  DATA ·erfcrodataL38<> + 216(SB)/8, $-.344203375025257265E-02
    38  DATA ·erfcrodataL38<> + 224(SB)/8, $-.869243428221791329E-03
    39  DATA ·erfcrodataL38<> + 232(SB)/8, $.174699813107105603E-03
    40  DATA ·erfcrodataL38<> + 240(SB)/8, $.649481036316130000E-05
    41  DATA ·erfcrodataL38<> + 248(SB)/8, $-.895265844897118382E-05
    42  DATA ·erfcrodataL38<> + 256(SB)/8, $.135970046909529513E-05
    43  DATA ·erfcrodataL38<> + 264(SB)/8, $.277617717014748015E-06
    44  DATA ·erfcrodataL38<> + 272(SB)/8, $.810628018408232910E-08
    45  DATA ·erfcrodataL38<> + 280(SB)/8, $.210430084693497985E-07
    46  DATA ·erfcrodataL38<> + 288(SB)/8, $-.342138077525615091E-08
    47  DATA ·erfcrodataL38<> + 296(SB)/8, $-.165467946798610800E-06
    48  DATA ·erfcrodataL38<> + 304(SB)/8, $5.999999999988412824
    49  DATA ·erfcrodataL38<> + 312(SB)/8, $.468542210149072159E-01
    50  DATA ·erfcrodataL38<> + 320(SB)/8, $.465343528567604256E-01
    51  DATA ·erfcrodataL38<> + 328(SB)/8, $-.473338083650201733E-03
    52  DATA ·erfcrodataL38<> + 336(SB)/8, $-.147220659069079156E-03
    53  DATA ·erfcrodataL38<> + 344(SB)/8, $.755284723554388339E-05
    54  DATA ·erfcrodataL38<> + 352(SB)/8, $.116158570631428789E-05
    55  DATA ·erfcrodataL38<> + 360(SB)/8, $-.155445501551602389E-06
    56  DATA ·erfcrodataL38<> + 368(SB)/8, $-.616940119847805046E-10
    57  DATA ·erfcrodataL38<> + 376(SB)/8, $-.728705590727563158E-10
    58  DATA ·erfcrodataL38<> + 384(SB)/8, $-.983452460354586779E-08
    59  DATA ·erfcrodataL38<> + 392(SB)/8, $.365156164194346316E-08
    60  DATA ·erfcrodataL38<> + 400(SB)/8, $11.999999999996530775
    61  DATA ·erfcrodataL38<> + 408(SB)/8, $0.467773498104726584E-02
    62  DATA ·erfcrodataL38<> + 416(SB)/8, $0.206669853540920535E-01
    63  DATA ·erfcrodataL38<> + 424(SB)/8, $0.413339707081841473E-01
    64  DATA ·erfcrodataL38<> + 432(SB)/8, $0.482229658262131320E-01
    65  DATA ·erfcrodataL38<> + 440(SB)/8, $0.344449755901841897E-01
    66  DATA ·erfcrodataL38<> + 448(SB)/8, $0.130890907240765465E-01
    67  DATA ·erfcrodataL38<> + 456(SB)/8, $-.459266344100642687E-03
    68  DATA ·erfcrodataL38<> + 464(SB)/8, $-.337888800856913728E-02
    69  DATA ·erfcrodataL38<> + 472(SB)/8, $-.159103061687062373E-02
    70  DATA ·erfcrodataL38<> + 480(SB)/8, $-.501128905515922644E-04
    71  DATA ·erfcrodataL38<> + 488(SB)/8, $0.262775855852903132E-03
    72  DATA ·erfcrodataL38<> + 496(SB)/8, $0.103860982197462436E-03
    73  DATA ·erfcrodataL38<> + 504(SB)/8, $-.548835785414200775E-05
    74  DATA ·erfcrodataL38<> + 512(SB)/8, $-.157075054646618214E-04
    75  DATA ·erfcrodataL38<> + 520(SB)/8, $-.480056366276045110E-05
    76  DATA ·erfcrodataL38<> + 528(SB)/8, $0.198263013759701555E-05
    77  DATA ·erfcrodataL38<> + 536(SB)/8, $-.224394262958888780E-06
    78  DATA ·erfcrodataL38<> + 544(SB)/8, $-.321853693146683428E-06
    79  DATA ·erfcrodataL38<> + 552(SB)/8, $0.445073894984683537E-07
    80  DATA ·erfcrodataL38<> + 560(SB)/8, $0.660425940000555729E-06
    81  DATA ·erfcrodataL38<> + 568(SB)/8, $2.0
    82  DATA ·erfcrodataL38<> + 576(SB)/8, $8.63616855509444462538e-78
    83  DATA ·erfcrodataL38<> + 584(SB)/8, $1.00000000000000222044
    84  DATA ·erfcrodataL38<> + 592(SB)/8, $0.500000000000004237e+00
    85  DATA ·erfcrodataL38<> + 600(SB)/8, $0.416666664838056960e-01
    86  DATA ·erfcrodataL38<> + 608(SB)/8, $0.166666666630345592e+00
    87  DATA ·erfcrodataL38<> + 616(SB)/8, $0.138926439368309441e-02
    88  DATA ·erfcrodataL38<> + 624(SB)/8, $0.833349307718286047e-02
    89  DATA ·erfcrodataL38<> + 632(SB)/8, $-.693147180558298714e+00
    90  DATA ·erfcrodataL38<> + 640(SB)/8, $-.164659495826017651e-11
    91  DATA ·erfcrodataL38<> + 648(SB)/8, $.179001151181866548E+00
    92  DATA ·erfcrodataL38<> + 656(SB)/8, $-.144269504088896339e+01
    93  DATA ·erfcrodataL38<> + 664(SB)/8, $+281475245147134.9375
    94  DATA ·erfcrodataL38<> + 672(SB)/8, $.163116780021877404E+00
    95  DATA ·erfcrodataL38<> + 680(SB)/8, $-.201574395828120710E-01
    96  DATA ·erfcrodataL38<> + 688(SB)/8, $-.185726336009394125E-02
    97  DATA ·erfcrodataL38<> + 696(SB)/8, $.199349204957273749E-02
    98  DATA ·erfcrodataL38<> + 704(SB)/8, $-.554902415532606242E-03
    99  DATA ·erfcrodataL38<> + 712(SB)/8, $-.638914789660242846E-05
   100  DATA ·erfcrodataL38<> + 720(SB)/8, $-.424441522653742898E-04
   101  DATA ·erfcrodataL38<> + 728(SB)/8, $.827967511921486190E-04
   102  DATA ·erfcrodataL38<> + 736(SB)/8, $.913965446284062654E-05
   103  DATA ·erfcrodataL38<> + 744(SB)/8, $.277344791076320853E-05
   104  DATA ·erfcrodataL38<> + 752(SB)/8, $-.467239678927239526E-06
   105  DATA ·erfcrodataL38<> + 760(SB)/8, $.344814065920419986E-07
   106  DATA ·erfcrodataL38<> + 768(SB)/8, $-.366013491552527132E-05
   107  DATA ·erfcrodataL38<> + 776(SB)/8, $.181242810023783439E-05
   108  DATA ·erfcrodataL38<> + 784(SB)/8, $2.999999999991234567
   109  DATA ·erfcrodataL38<> + 792(SB)/8, $1.0
   110  GLOBL ·erfcrodataL38<> + 0(SB), RODATA, $800
   111  
   112  // Table of log correction terms
   113  DATA ·erfctab2069<> + 0(SB)/8, $0.442737824274138381e-01
   114  DATA ·erfctab2069<> + 8(SB)/8, $0.263602189790660309e-01
   115  DATA ·erfctab2069<> + 16(SB)/8, $0.122565642281703586e-01
   116  DATA ·erfctab2069<> + 24(SB)/8, $0.143757052860721398e-02
   117  DATA ·erfctab2069<> + 32(SB)/8, $-.651375034121276075e-02
   118  DATA ·erfctab2069<> + 40(SB)/8, $-.119317678849450159e-01
   119  DATA ·erfctab2069<> + 48(SB)/8, $-.150868749549871069e-01
   120  DATA ·erfctab2069<> + 56(SB)/8, $-.161992609578469234e-01
   121  DATA ·erfctab2069<> + 64(SB)/8, $-.154492360403337917e-01
   122  DATA ·erfctab2069<> + 72(SB)/8, $-.129850717389178721e-01
   123  DATA ·erfctab2069<> + 80(SB)/8, $-.892902649276657891e-02
   124  DATA ·erfctab2069<> + 88(SB)/8, $-.338202636596794887e-02
   125  DATA ·erfctab2069<> + 96(SB)/8, $0.357266307045684762e-02
   126  DATA ·erfctab2069<> + 104(SB)/8, $0.118665304327406698e-01
   127  DATA ·erfctab2069<> + 112(SB)/8, $0.214434994118118914e-01
   128  DATA ·erfctab2069<> + 120(SB)/8, $0.322580645161290314e-01
   129  GLOBL ·erfctab2069<> + 0(SB), RODATA, $128
   130  
   131  // Erfc returns the complementary error function of the argument.
   132  //
   133  // Special cases are:
   134  //      Erfc(+Inf) = 0
   135  //      Erfc(-Inf) = 2
   136  //      Erfc(NaN) = NaN
   137  // The algorithm used is minimax polynomial approximation
   138  // with coefficients determined with a Remez exchange algorithm.
   139  
   140  TEXT	·erfcAsm(SB), NOSPLIT, $0-16
   141  	//special case Erfc(+Inf) = 0
   142  	MOVD	x+0(FP), R1
   143  	MOVD	$NegInf, R2
   144  	CMPUBEQ	R1, R2, erfcIsPosInf
   145  
   146  	FMOVD	x+0(FP), F0
   147  	MOVD	$·erfcrodataL38<>+0(SB), R9
   148  	WORD	$0xB3CD0010	//lgdr %r1, %f0
   149  	FMOVD	F0, F2
   150  	SRAD	$48, R1
   151  	MOVH	$0x3FFF, R3
   152  	MOVH	R1, R2
   153  	ANDW	$0x7FFF, R1
   154  	MOVW	R1, R6
   155  	MOVW	R3, R7
   156  	CMPBGT	R6, R7, L2
   157  	MOVH	$0x3FEF, R3
   158  	MOVW	R3, R7
   159  	CMPBGT	R6, R7, L3
   160  	MOVH	$0x2FFF, R2
   161  	MOVW	R2, R7
   162  	CMPBGT	R6, R7, L4
   163  	FMOVD	792(R9), F0
   164  	WFSDB	V2, V0, V2
   165  	FMOVD	F2, ret+8(FP)
   166  	RET
   167  
   168  L2:
   169  	WORD	$0xB3120000	//ltdbr	%f0,%f0
   170  	MOVH	$0x0, R4
   171  	BLTU	L3
   172  	FMOVD	F0, F1
   173  L9:
   174  	MOVH	$0x400F, R3
   175  	MOVW	R1, R6
   176  	MOVW	R3, R7
   177  	CMPBGT	R6, R7, L10
   178  	FMOVD	784(R9), F3
   179  	FSUB	F1, F3
   180  	VLEG	$0, 776(R9), V20
   181  	WFDDB	V1, V3, V6
   182  	VLEG	$0, 768(R9), V18
   183  	FMOVD	760(R9), F7
   184  	FMOVD	752(R9), F5
   185  	VLEG	$0, 744(R9), V16
   186  	FMOVD	736(R9), F3
   187  	FMOVD	728(R9), F2
   188  	FMOVD	720(R9), F4
   189  	WFMDB	V6, V6, V1
   190  	FMUL	F0, F0
   191  	MOVH	$0x0, R3
   192  	WFMADB	V1, V7, V20, V7
   193  	WFMADB	V1, V5, V18, V5
   194  	WFMADB	V1, V7, V16, V7
   195  	WFMADB	V1, V5, V3, V5
   196  	WFMADB	V1, V7, V4, V7
   197  	WFMADB	V1, V5, V2, V5
   198  	FMOVD	712(R9), F2
   199  	WFMADB	V1, V7, V2, V7
   200  	FMOVD	704(R9), F2
   201  	WFMADB	V1, V5, V2, V5
   202  	FMOVD	696(R9), F2
   203  	WFMADB	V1, V7, V2, V7
   204  	FMOVD	688(R9), F2
   205  	MOVH	$0x0, R1
   206  	WFMADB	V1, V5, V2, V5
   207  	FMOVD	680(R9), F2
   208  	WFMADB	V1, V7, V2, V7
   209  	FMOVD	672(R9), F2
   210  	WFMADB	V1, V5, V2, V1
   211  	FMOVD	664(R9), F3
   212  	WFMADB	V6, V7, V1, V7
   213  	FMOVD	656(R9), F5
   214  	FMOVD	648(R9), F2
   215  	WFMADB	V0, V5, V3, V5
   216  	WFMADB	V6, V7, V2, V7
   217  L11:
   218  	WORD	$0xB3CD0065	//lgdr %r6, %f5
   219  	WFSDB	V0, V0, V2
   220  	WORD	$0xED509298	//sdb	%f5,.L55-.L38(%r9)
   221  	BYTE	$0x00
   222  	BYTE	$0x1B
   223  	FMOVD	640(R9), F6
   224  	FMOVD	632(R9), F4
   225  	WFMSDB	V5, V6, V2, V6
   226  	WFMSDB	V5, V4, V0, V4
   227  	FMOVD	624(R9), F2
   228  	FADD	F6, F4
   229  	FMOVD	616(R9), F0
   230  	FMOVD	608(R9), F6
   231  	WFMADB	V4, V0, V2, V0
   232  	FMOVD	600(R9), F3
   233  	WFMDB	V4, V4, V2
   234  	MOVH	R6,R6
   235  	ADD	R6, R3
   236  	WFMADB	V4, V3, V6, V3
   237  	FMOVD	592(R9), F6
   238  	WFMADB	V0, V2, V3, V0
   239  	FMOVD	584(R9), F3
   240  	WFMADB	V4, V6, V3, V6
   241  	WORD	$0xECC339BC	//risbg	%r12,%r3,57,128+60,3
   242  	BYTE	$0x03
   243  	BYTE	$0x55
   244  	WFMADB	V2, V0, V6, V0
   245  	MOVD	$·erfctab2069<>+0(SB), R5
   246  	WORD	$0x682C5000	//ld	%f2,0(%r12,%r5)
   247  	FMADD	F2, F4, F4
   248  	WORD	$0xEC43000F	//risbgn	%r4,%r3,64-64+0,64-64+0+16-1,64-0-16
   249  	BYTE	$0x30
   250  	BYTE	$0x59
   251  	WFMADB	V4, V0, V2, V4
   252  	WORD	$0xB3C10024	//ldgr	%f2,%r4
   253  	FMADD	F4, F2, F2
   254  	MOVW	R2, R6
   255  	CMPBLE	R6, $0, L20
   256  	MOVW	R1, R6
   257  	CMPBEQ	R6, $0, L21
   258  	WORD	$0xED709240	//mdb	%f7,.L66-.L38(%r9)
   259  	BYTE	$0x00
   260  	BYTE	$0x1C
   261  L21:
   262  	FMUL	F7, F2
   263  L1:
   264  	FMOVD	F2, ret+8(FP)
   265  	RET
   266  L3:
   267  	WORD	$0xB3120000	//ltdbr	%f0,%f0
   268  	BLTU	L30
   269  	FMOVD	568(R9), F2
   270  	WFSDB	V0, V2, V0
   271  L8:
   272  	WFMDB	V0, V0, V4
   273  	FMOVD	560(R9), F2
   274  	FMOVD	552(R9), F6
   275  	FMOVD	544(R9), F1
   276  	WFMADB	V4, V6, V2, V6
   277  	FMOVD	536(R9), F2
   278  	WFMADB	V4, V1, V2, V1
   279  	FMOVD	528(R9), F3
   280  	FMOVD	520(R9), F2
   281  	WFMADB	V4, V6, V3, V6
   282  	WFMADB	V4, V1, V2, V1
   283  	FMOVD	512(R9), F3
   284  	FMOVD	504(R9), F2
   285  	WFMADB	V4, V6, V3, V6
   286  	WFMADB	V4, V1, V2, V1
   287  	FMOVD	496(R9), F3
   288  	FMOVD	488(R9), F2
   289  	WFMADB	V4, V6, V3, V6
   290  	WFMADB	V4, V1, V2, V1
   291  	FMOVD	480(R9), F3
   292  	FMOVD	472(R9), F2
   293  	WFMADB	V4, V6, V3, V6
   294  	WFMADB	V4, V1, V2, V1
   295  	FMOVD	464(R9), F3
   296  	FMOVD	456(R9), F2
   297  	WFMADB	V4, V6, V3, V6
   298  	WFMADB	V4, V1, V2, V1
   299  	FMOVD	448(R9), F3
   300  	FMOVD	440(R9), F2
   301  	WFMADB	V4, V6, V3, V6
   302  	WFMADB	V4, V1, V2, V1
   303  	FMOVD	432(R9), F3
   304  	FMOVD	424(R9), F2
   305  	WFMADB	V4, V6, V3, V6
   306  	WFMADB	V4, V1, V2, V1
   307  	FMOVD	416(R9), F3
   308  	FMOVD	408(R9), F2
   309  	WFMADB	V4, V6, V3, V6
   310  	FMADD	F1, F4, F2
   311  	FMADD	F6, F0, F2
   312  	MOVW	R2, R6
   313  	CMPBGE	R6, $0, L1
   314  	FMOVD	568(R9), F0
   315  	WFSDB	V2, V0, V2
   316  	BR	L1
   317  L10:
   318  	MOVH	$0x401F, R3
   319  	MOVW	R1, R6
   320  	MOVW	R3, R7
   321  	CMPBLE	R6, R7, L36
   322  	MOVH	$0x402F, R3
   323  	MOVW	R3, R7
   324  	CMPBGT	R6, R7, L13
   325  	FMOVD	400(R9), F3
   326  	FSUB	F1, F3
   327  	VLEG	$0, 392(R9), V20
   328  	WFDDB	V1, V3, V6
   329  	VLEG	$0, 384(R9), V18
   330  	FMOVD	376(R9), F2
   331  	FMOVD	368(R9), F4
   332  	VLEG	$0, 360(R9), V16
   333  	FMOVD	352(R9), F7
   334  	FMOVD	344(R9), F3
   335  	FMUL	F0, F0
   336  	WFMDB	V6, V6, V1
   337  	FMOVD	656(R9), F5
   338  	MOVH	$0x0, R3
   339  	WFMADB	V1, V2, V20, V2
   340  	WFMADB	V1, V4, V18, V4
   341  	WFMADB	V1, V2, V16, V2
   342  	WFMADB	V1, V4, V7, V4
   343  	WFMADB	V1, V2, V3, V2
   344  	FMOVD	336(R9), F3
   345  	WFMADB	V1, V4, V3, V4
   346  	FMOVD	328(R9), F3
   347  	WFMADB	V1, V2, V3, V2
   348  	FMOVD	320(R9), F3
   349  	WFMADB	V1, V4, V3, V1
   350  	FMOVD	312(R9), F7
   351  	WFMADB	V6, V2, V1, V2
   352  	MOVH	$0x0, R1
   353  	FMOVD	664(R9), F3
   354  	FMADD	F2, F6, F7
   355  	WFMADB	V0, V5, V3, V5
   356  	BR	L11
   357  L35:
   358  	WORD	$0xB3130010	//lcdbr	%f1,%f0
   359  	BR	L9
   360  L36:
   361  	FMOVD	304(R9), F3
   362  	FSUB	F1, F3
   363  	VLEG	$0, 296(R9), V20
   364  	WFDDB	V1, V3, V6
   365  	FMOVD	288(R9), F5
   366  	FMOVD	280(R9), F1
   367  	FMOVD	272(R9), F2
   368  	VLEG	$0, 264(R9), V18
   369  	VLEG	$0, 256(R9), V16
   370  	FMOVD	248(R9), F3
   371  	FMOVD	240(R9), F4
   372  	WFMDB	V6, V6, V7
   373  	FMUL	F0, F0
   374  	MOVH	$0x0, R3
   375  	FMADD	F5, F7, F1
   376  	WFMADB	V7, V2, V20, V2
   377  	WFMADB	V7, V1, V18, V1
   378  	WFMADB	V7, V2, V16, V2
   379  	WFMADB	V7, V1, V3, V1
   380  	WFMADB	V7, V2, V4, V2
   381  	FMOVD	232(R9), F4
   382  	WFMADB	V7, V1, V4, V1
   383  	FMOVD	224(R9), F4
   384  	WFMADB	V7, V2, V4, V2
   385  	FMOVD	216(R9), F4
   386  	WFMADB	V7, V1, V4, V1
   387  	FMOVD	208(R9), F4
   388  	MOVH	$0x0, R1
   389  	WFMADB	V7, V2, V4, V7
   390  	FMOVD	656(R9), F5
   391  	WFMADB	V6, V1, V7, V1
   392  	FMOVD	664(R9), F3
   393  	FMOVD	200(R9), F7
   394  	WFMADB	V0, V5, V3, V5
   395  	FMADD	F1, F6, F7
   396  	BR	L11
   397  L4:
   398  	FMOVD	192(R9), F1
   399  	FMADD	F0, F0, F1
   400  	FMOVD	184(R9), F3
   401  	WFMDB	V1, V1, V0
   402  	FMOVD	176(R9), F4
   403  	FMOVD	168(R9), F6
   404  	WFMADB	V0, V4, V3, V4
   405  	FMOVD	160(R9), F3
   406  	WFMADB	V0, V6, V3, V6
   407  	FMOVD	152(R9), F5
   408  	FMOVD	144(R9), F3
   409  	WFMADB	V0, V4, V5, V4
   410  	WFMADB	V0, V6, V3, V6
   411  	FMOVD	136(R9), F5
   412  	FMOVD	128(R9), F3
   413  	WFMADB	V0, V4, V5, V4
   414  	WFMADB	V0, V6, V3, V6
   415  	FMOVD	120(R9), F5
   416  	FMOVD	112(R9), F3
   417  	WFMADB	V0, V4, V5, V4
   418  	WFMADB	V0, V6, V3, V6
   419  	FMOVD	104(R9), F5
   420  	FMOVD	96(R9), F3
   421  	WFMADB	V0, V4, V5, V4
   422  	WFMADB	V0, V6, V3, V0
   423  	FMOVD	F2, F6
   424  	FMADD	F4, F1, F0
   425  	WORD	$0xED609318	//sdb	%f6,.L39-.L38(%r9)
   426  	BYTE	$0x00
   427  	BYTE	$0x1B
   428  	WFMSDB	V2, V0, V6, V2
   429  	FMOVD	F2, ret+8(FP)
   430  	RET
   431  L30:
   432  	WORD	$0xED009238	//adb	%f0,.L67-.L38(%r9)
   433  	BYTE	$0x00
   434  	BYTE	$0x1A
   435  	BR	L8
   436  L20:
   437  	FMOVD	88(R9), F0
   438  	WFMADB	V7, V2, V0, V2
   439  	WORD	$0xB3130022	//lcdbr	%f2,%f2
   440  	FMOVD	F2, ret+8(FP)
   441  	RET
   442  L13:
   443  	MOVH	$0x403A, R3
   444  	MOVW	R1, R6
   445  	MOVW	R3, R7
   446  	CMPBLE	R6, R7, L4
   447  	WORD	$0xED109050	//cdb	%f1,.L128-.L38(%r9)
   448  	BYTE	$0x00
   449  	BYTE	$0x19
   450  	BGE	L37
   451  	BVS	L37
   452  	FMOVD	72(R9), F6
   453  	FSUB	F1, F6
   454  	MOVH	$0x1000, R3
   455  	FDIV	F1, F6
   456  	MOVH	$0x1000, R1
   457  L17:
   458  	WFMDB	V6, V6, V1
   459  	FMOVD	64(R9), F2
   460  	FMOVD	56(R9), F4
   461  	FMOVD	48(R9), F3
   462  	WFMADB	V1, V3, V2, V3
   463  	FMOVD	40(R9), F2
   464  	WFMADB	V1, V2, V4, V2
   465  	FMOVD	32(R9), F4
   466  	WFMADB	V1, V3, V4, V3
   467  	FMOVD	24(R9), F4
   468  	WFMADB	V1, V2, V4, V2
   469  	FMOVD	16(R9), F4
   470  	WFMADB	V1, V3, V4, V3
   471  	FMOVD	8(R9), F4
   472  	WFMADB	V1, V2, V4, V1
   473  	FMUL	F0, F0
   474  	WFMADB	V3, V6, V1, V3
   475  	FMOVD	656(R9), F5
   476  	FMOVD	664(R9), F4
   477  	FMOVD	0(R9), F7
   478  	WFMADB	V0, V5, V4, V5
   479  	FMADD	F6, F3, F7
   480  	BR	L11
   481  L14:
   482  	FMOVD	72(R9), F6
   483  	FSUB	F1, F6
   484  	MOVH	$0x403A, R3
   485  	FDIV	F1, F6
   486  	MOVW	R1, R6
   487  	MOVW	R3, R7
   488  	CMPBEQ	R6, R7, L23
   489  	MOVH	$0x0, R3
   490  	MOVH	$0x0, R1
   491  	BR	L17
   492  L37:
   493  	WFCEDBS	V0, V0, V0
   494  	BVS	L1
   495  	MOVW	R2, R6
   496  	CMPBLE	R6, $0, L18
   497  	MOVH	$0x7FEF, R2
   498  	MOVW	R1, R6
   499  	MOVW	R2, R7
   500  	CMPBGT	R6, R7, L24
   501  
   502  	WORD	$0xA5400010	//iihh	%r4,16
   503  	WORD	$0xB3C10024	//ldgr	%f2,%r4
   504  	FMUL	F2, F2
   505  	BR	L1
   506  L23:
   507  	MOVH	$0x1000, R3
   508  	MOVH	$0x1000, R1
   509  	BR	L17
   510  L24:
   511  	FMOVD	$0, F2
   512  	BR	L1
   513  L18:
   514  	MOVH	$0x7FEF, R2
   515  	MOVW	R1, R6
   516  	MOVW	R2, R7
   517  	CMPBGT	R6, R7, L25
   518  	WORD	$0xA5408010	//iihh	%r4,32784
   519  	FMOVD	568(R9), F2
   520  	WORD	$0xB3C10004	//ldgr	%f0,%r4
   521  	FMADD	F2, F0, F2
   522  	BR	L1
   523  L25:
   524  	FMOVD	568(R9), F2
   525  	BR	L1
   526  erfcIsPosInf:
   527  	FMOVD	$(2.0), F1
   528  	FMOVD	F1, ret+8(FP)
   529  	RET
   530