github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/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  	RISBGZ	$57, $60, $3, R3, R12
   246  	WFMADB	V2, V0, V6, V0
   247  	MOVD	$·erfctab2069<>+0(SB), R5
   248  	WORD	$0x682C5000	//ld	%f2,0(%r12,%r5)
   249  	FMADD	F2, F4, F4
   250  	RISBGN	$0, $15, $48, R3, R4
   251  	WFMADB	V4, V0, V2, V4
   252  	LDGR	R4, F2
   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  	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  	LDGR	R4, F2
   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  	LDGR	R4, F0
   521  	FMADD	F2, F0, F2
   522  	BR	L1
   523  L25:
   524  	FMOVD	568(R9), F2
   525  	BR	L1
   526  usego:
   527  	BR	·erfc(SB)