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