| // Copyright 2017 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | #include "textflag.h" | 
 |  | 
 | #define Neg2p11 0xC000E147AE147AE1 | 
 | #define Pos15   0x402E | 
 |  | 
 | // Minimax polynomial coefficients and other constants | 
 | DATA ·erfcrodataL38<> + 0(SB)/8, $.234875460637085087E-01 | 
 | DATA ·erfcrodataL38<> + 8(SB)/8, $.234469449299256284E-01 | 
 | DATA ·erfcrodataL38<> + 16(SB)/8, $-.606918710392844955E-04 | 
 | DATA ·erfcrodataL38<> + 24(SB)/8, $-.198827088077636213E-04 | 
 | DATA ·erfcrodataL38<> + 32(SB)/8, $.257805645845475331E-06 | 
 | DATA ·erfcrodataL38<> + 40(SB)/8, $-.184427218110620284E-09 | 
 | DATA ·erfcrodataL38<> + 48(SB)/8, $.122408098288933181E-10 | 
 | DATA ·erfcrodataL38<> + 56(SB)/8, $.484691106751495392E-07 | 
 | DATA ·erfcrodataL38<> + 64(SB)/8, $-.150147637632890281E-08 | 
 | DATA ·erfcrodataL38<> + 72(SB)/8, $23.999999999973521625 | 
 | DATA ·erfcrodataL38<> + 80(SB)/8, $27.226017111108365754 | 
 | DATA ·erfcrodataL38<> + 88(SB)/8, $-2.0 | 
 | DATA ·erfcrodataL38<> + 96(SB)/8, $0.100108802034478228E+00 | 
 | DATA ·erfcrodataL38<> + 104(SB)/8, $0.244588413746558125E+00 | 
 | DATA ·erfcrodataL38<> + 112(SB)/8, $-.669188879646637174E-01 | 
 | DATA ·erfcrodataL38<> + 120(SB)/8, $0.151311447000953551E-01 | 
 | DATA ·erfcrodataL38<> + 128(SB)/8, $-.284720833493302061E-02 | 
 | DATA ·erfcrodataL38<> + 136(SB)/8, $0.455491239358743212E-03 | 
 | DATA ·erfcrodataL38<> + 144(SB)/8, $-.631850539280720949E-04 | 
 | DATA ·erfcrodataL38<> + 152(SB)/8, $0.772532660726086679E-05 | 
 | DATA ·erfcrodataL38<> + 160(SB)/8, $-.843706007150936940E-06 | 
 | DATA ·erfcrodataL38<> + 168(SB)/8, $-.735330214904227472E-08 | 
 | DATA ·erfcrodataL38<> + 176(SB)/8, $0.753002008837084967E-09 | 
 | DATA ·erfcrodataL38<> + 184(SB)/8, $0.832482036660624637E-07 | 
 | DATA ·erfcrodataL38<> + 192(SB)/8, $-0.75 | 
 | DATA ·erfcrodataL38<> + 200(SB)/8, $.927765678007128609E-01 | 
 | DATA ·erfcrodataL38<> + 208(SB)/8, $.903621209344751506E-01 | 
 | DATA ·erfcrodataL38<> + 216(SB)/8, $-.344203375025257265E-02 | 
 | DATA ·erfcrodataL38<> + 224(SB)/8, $-.869243428221791329E-03 | 
 | DATA ·erfcrodataL38<> + 232(SB)/8, $.174699813107105603E-03 | 
 | DATA ·erfcrodataL38<> + 240(SB)/8, $.649481036316130000E-05 | 
 | DATA ·erfcrodataL38<> + 248(SB)/8, $-.895265844897118382E-05 | 
 | DATA ·erfcrodataL38<> + 256(SB)/8, $.135970046909529513E-05 | 
 | DATA ·erfcrodataL38<> + 264(SB)/8, $.277617717014748015E-06 | 
 | DATA ·erfcrodataL38<> + 272(SB)/8, $.810628018408232910E-08 | 
 | DATA ·erfcrodataL38<> + 280(SB)/8, $.210430084693497985E-07 | 
 | DATA ·erfcrodataL38<> + 288(SB)/8, $-.342138077525615091E-08 | 
 | DATA ·erfcrodataL38<> + 296(SB)/8, $-.165467946798610800E-06 | 
 | DATA ·erfcrodataL38<> + 304(SB)/8, $5.999999999988412824 | 
 | DATA ·erfcrodataL38<> + 312(SB)/8, $.468542210149072159E-01 | 
 | DATA ·erfcrodataL38<> + 320(SB)/8, $.465343528567604256E-01 | 
 | DATA ·erfcrodataL38<> + 328(SB)/8, $-.473338083650201733E-03 | 
 | DATA ·erfcrodataL38<> + 336(SB)/8, $-.147220659069079156E-03 | 
 | DATA ·erfcrodataL38<> + 344(SB)/8, $.755284723554388339E-05 | 
 | DATA ·erfcrodataL38<> + 352(SB)/8, $.116158570631428789E-05 | 
 | DATA ·erfcrodataL38<> + 360(SB)/8, $-.155445501551602389E-06 | 
 | DATA ·erfcrodataL38<> + 368(SB)/8, $-.616940119847805046E-10 | 
 | DATA ·erfcrodataL38<> + 376(SB)/8, $-.728705590727563158E-10 | 
 | DATA ·erfcrodataL38<> + 384(SB)/8, $-.983452460354586779E-08 | 
 | DATA ·erfcrodataL38<> + 392(SB)/8, $.365156164194346316E-08 | 
 | DATA ·erfcrodataL38<> + 400(SB)/8, $11.999999999996530775 | 
 | DATA ·erfcrodataL38<> + 408(SB)/8, $0.467773498104726584E-02 | 
 | DATA ·erfcrodataL38<> + 416(SB)/8, $0.206669853540920535E-01 | 
 | DATA ·erfcrodataL38<> + 424(SB)/8, $0.413339707081841473E-01 | 
 | DATA ·erfcrodataL38<> + 432(SB)/8, $0.482229658262131320E-01 | 
 | DATA ·erfcrodataL38<> + 440(SB)/8, $0.344449755901841897E-01 | 
 | DATA ·erfcrodataL38<> + 448(SB)/8, $0.130890907240765465E-01 | 
 | DATA ·erfcrodataL38<> + 456(SB)/8, $-.459266344100642687E-03 | 
 | DATA ·erfcrodataL38<> + 464(SB)/8, $-.337888800856913728E-02 | 
 | DATA ·erfcrodataL38<> + 472(SB)/8, $-.159103061687062373E-02 | 
 | DATA ·erfcrodataL38<> + 480(SB)/8, $-.501128905515922644E-04 | 
 | DATA ·erfcrodataL38<> + 488(SB)/8, $0.262775855852903132E-03 | 
 | DATA ·erfcrodataL38<> + 496(SB)/8, $0.103860982197462436E-03 | 
 | DATA ·erfcrodataL38<> + 504(SB)/8, $-.548835785414200775E-05 | 
 | DATA ·erfcrodataL38<> + 512(SB)/8, $-.157075054646618214E-04 | 
 | DATA ·erfcrodataL38<> + 520(SB)/8, $-.480056366276045110E-05 | 
 | DATA ·erfcrodataL38<> + 528(SB)/8, $0.198263013759701555E-05 | 
 | DATA ·erfcrodataL38<> + 536(SB)/8, $-.224394262958888780E-06 | 
 | DATA ·erfcrodataL38<> + 544(SB)/8, $-.321853693146683428E-06 | 
 | DATA ·erfcrodataL38<> + 552(SB)/8, $0.445073894984683537E-07 | 
 | DATA ·erfcrodataL38<> + 560(SB)/8, $0.660425940000555729E-06 | 
 | DATA ·erfcrodataL38<> + 568(SB)/8, $2.0 | 
 | DATA ·erfcrodataL38<> + 576(SB)/8, $8.63616855509444462538e-78 | 
 | DATA ·erfcrodataL38<> + 584(SB)/8, $1.00000000000000222044 | 
 | DATA ·erfcrodataL38<> + 592(SB)/8, $0.500000000000004237e+00 | 
 | DATA ·erfcrodataL38<> + 600(SB)/8, $0.416666664838056960e-01 | 
 | DATA ·erfcrodataL38<> + 608(SB)/8, $0.166666666630345592e+00 | 
 | DATA ·erfcrodataL38<> + 616(SB)/8, $0.138926439368309441e-02 | 
 | DATA ·erfcrodataL38<> + 624(SB)/8, $0.833349307718286047e-02 | 
 | DATA ·erfcrodataL38<> + 632(SB)/8, $-.693147180558298714e+00 | 
 | DATA ·erfcrodataL38<> + 640(SB)/8, $-.164659495826017651e-11 | 
 | DATA ·erfcrodataL38<> + 648(SB)/8, $.179001151181866548E+00 | 
 | DATA ·erfcrodataL38<> + 656(SB)/8, $-.144269504088896339e+01 | 
 | DATA ·erfcrodataL38<> + 664(SB)/8, $+281475245147134.9375 | 
 | DATA ·erfcrodataL38<> + 672(SB)/8, $.163116780021877404E+00 | 
 | DATA ·erfcrodataL38<> + 680(SB)/8, $-.201574395828120710E-01 | 
 | DATA ·erfcrodataL38<> + 688(SB)/8, $-.185726336009394125E-02 | 
 | DATA ·erfcrodataL38<> + 696(SB)/8, $.199349204957273749E-02 | 
 | DATA ·erfcrodataL38<> + 704(SB)/8, $-.554902415532606242E-03 | 
 | DATA ·erfcrodataL38<> + 712(SB)/8, $-.638914789660242846E-05 | 
 | DATA ·erfcrodataL38<> + 720(SB)/8, $-.424441522653742898E-04 | 
 | DATA ·erfcrodataL38<> + 728(SB)/8, $.827967511921486190E-04 | 
 | DATA ·erfcrodataL38<> + 736(SB)/8, $.913965446284062654E-05 | 
 | DATA ·erfcrodataL38<> + 744(SB)/8, $.277344791076320853E-05 | 
 | DATA ·erfcrodataL38<> + 752(SB)/8, $-.467239678927239526E-06 | 
 | DATA ·erfcrodataL38<> + 760(SB)/8, $.344814065920419986E-07 | 
 | DATA ·erfcrodataL38<> + 768(SB)/8, $-.366013491552527132E-05 | 
 | DATA ·erfcrodataL38<> + 776(SB)/8, $.181242810023783439E-05 | 
 | DATA ·erfcrodataL38<> + 784(SB)/8, $2.999999999991234567 | 
 | DATA ·erfcrodataL38<> + 792(SB)/8, $1.0 | 
 | GLOBL ·erfcrodataL38<> + 0(SB), RODATA, $800 | 
 |  | 
 | // Table of log correction terms | 
 | DATA ·erfctab2069<> + 0(SB)/8, $0.442737824274138381e-01 | 
 | DATA ·erfctab2069<> + 8(SB)/8, $0.263602189790660309e-01 | 
 | DATA ·erfctab2069<> + 16(SB)/8, $0.122565642281703586e-01 | 
 | DATA ·erfctab2069<> + 24(SB)/8, $0.143757052860721398e-02 | 
 | DATA ·erfctab2069<> + 32(SB)/8, $-.651375034121276075e-02 | 
 | DATA ·erfctab2069<> + 40(SB)/8, $-.119317678849450159e-01 | 
 | DATA ·erfctab2069<> + 48(SB)/8, $-.150868749549871069e-01 | 
 | DATA ·erfctab2069<> + 56(SB)/8, $-.161992609578469234e-01 | 
 | DATA ·erfctab2069<> + 64(SB)/8, $-.154492360403337917e-01 | 
 | DATA ·erfctab2069<> + 72(SB)/8, $-.129850717389178721e-01 | 
 | DATA ·erfctab2069<> + 80(SB)/8, $-.892902649276657891e-02 | 
 | DATA ·erfctab2069<> + 88(SB)/8, $-.338202636596794887e-02 | 
 | DATA ·erfctab2069<> + 96(SB)/8, $0.357266307045684762e-02 | 
 | DATA ·erfctab2069<> + 104(SB)/8, $0.118665304327406698e-01 | 
 | DATA ·erfctab2069<> + 112(SB)/8, $0.214434994118118914e-01 | 
 | DATA ·erfctab2069<> + 120(SB)/8, $0.322580645161290314e-01 | 
 | GLOBL ·erfctab2069<> + 0(SB), RODATA, $128 | 
 |  | 
 | // Erfc returns the complementary error function of the argument. | 
 | // | 
 | // Special cases are: | 
 | //      Erfc(+Inf) = 0 | 
 | //      Erfc(-Inf) = 2 | 
 | //      Erfc(NaN) = NaN | 
 | // The algorithm used is minimax polynomial approximation | 
 | // with coefficients determined with a Remez exchange algorithm. | 
 | // This assembly implementation handles inputs in the range [-2.11, +15]. | 
 | // For all other inputs we call the generic Go implementation. | 
 |  | 
 | TEXT	·erfcAsm(SB), NOSPLIT|NOFRAME, $0-16 | 
 | 	MOVD	x+0(FP), R1 | 
 | 	MOVD	$Neg2p11, R2 | 
 | 	CMPUBGT	R1, R2, usego | 
 |  | 
 | 	FMOVD	x+0(FP), F0 | 
 | 	MOVD	$·erfcrodataL38<>+0(SB), R9 | 
 | 	FMOVD	F0, F2 | 
 | 	SRAD	$48, R1 | 
 | 	MOVH	R1, R2 | 
 | 	ANDW	$0x7FFF, R1 | 
 | 	MOVH	$Pos15, R3 | 
 | 	CMPW	R1, R3 | 
 | 	BGT	usego | 
 | 	MOVH	$0x3FFF, R3 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBGT	R6, R7, L2 | 
 | 	MOVH	$0x3FEF, R3 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBGT	R6, R7, L3 | 
 | 	MOVH	$0x2FFF, R2 | 
 | 	MOVW	R2, R7 | 
 | 	CMPBGT	R6, R7, L4 | 
 | 	FMOVD	792(R9), F0 | 
 | 	WFSDB	V2, V0, V2 | 
 | 	FMOVD	F2, ret+8(FP) | 
 | 	RET | 
 |  | 
 | L2: | 
 | 	LTDBR	F0, F0 | 
 | 	MOVH	$0x0, R4 | 
 | 	BLTU	L3 | 
 | 	FMOVD	F0, F1 | 
 | L9: | 
 | 	MOVH	$0x400F, R3 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBGT	R6, R7, L10 | 
 | 	FMOVD	784(R9), F3 | 
 | 	FSUB	F1, F3 | 
 | 	VLEG	$0, 776(R9), V20 | 
 | 	WFDDB	V1, V3, V6 | 
 | 	VLEG	$0, 768(R9), V18 | 
 | 	FMOVD	760(R9), F7 | 
 | 	FMOVD	752(R9), F5 | 
 | 	VLEG	$0, 744(R9), V16 | 
 | 	FMOVD	736(R9), F3 | 
 | 	FMOVD	728(R9), F2 | 
 | 	FMOVD	720(R9), F4 | 
 | 	WFMDB	V6, V6, V1 | 
 | 	FMUL	F0, F0 | 
 | 	MOVH	$0x0, R3 | 
 | 	WFMADB	V1, V7, V20, V7 | 
 | 	WFMADB	V1, V5, V18, V5 | 
 | 	WFMADB	V1, V7, V16, V7 | 
 | 	WFMADB	V1, V5, V3, V5 | 
 | 	WFMADB	V1, V7, V4, V7 | 
 | 	WFMADB	V1, V5, V2, V5 | 
 | 	FMOVD	712(R9), F2 | 
 | 	WFMADB	V1, V7, V2, V7 | 
 | 	FMOVD	704(R9), F2 | 
 | 	WFMADB	V1, V5, V2, V5 | 
 | 	FMOVD	696(R9), F2 | 
 | 	WFMADB	V1, V7, V2, V7 | 
 | 	FMOVD	688(R9), F2 | 
 | 	MOVH	$0x0, R1 | 
 | 	WFMADB	V1, V5, V2, V5 | 
 | 	FMOVD	680(R9), F2 | 
 | 	WFMADB	V1, V7, V2, V7 | 
 | 	FMOVD	672(R9), F2 | 
 | 	WFMADB	V1, V5, V2, V1 | 
 | 	FMOVD	664(R9), F3 | 
 | 	WFMADB	V6, V7, V1, V7 | 
 | 	FMOVD	656(R9), F5 | 
 | 	FMOVD	648(R9), F2 | 
 | 	WFMADB	V0, V5, V3, V5 | 
 | 	WFMADB	V6, V7, V2, V7 | 
 | L11: | 
 | 	LGDR	F5, R6 | 
 | 	WFSDB	V0, V0, V2 | 
 | 	WORD	$0xED509298	//sdb	%f5,.L55-.L38(%r9) | 
 | 	BYTE	$0x00 | 
 | 	BYTE	$0x1B | 
 | 	FMOVD	640(R9), F6 | 
 | 	FMOVD	632(R9), F4 | 
 | 	WFMSDB	V5, V6, V2, V6 | 
 | 	WFMSDB	V5, V4, V0, V4 | 
 | 	FMOVD	624(R9), F2 | 
 | 	FADD	F6, F4 | 
 | 	FMOVD	616(R9), F0 | 
 | 	FMOVD	608(R9), F6 | 
 | 	WFMADB	V4, V0, V2, V0 | 
 | 	FMOVD	600(R9), F3 | 
 | 	WFMDB	V4, V4, V2 | 
 | 	MOVH	R6,R6 | 
 | 	ADD	R6, R3 | 
 | 	WFMADB	V4, V3, V6, V3 | 
 | 	FMOVD	592(R9), F6 | 
 | 	WFMADB	V0, V2, V3, V0 | 
 | 	FMOVD	584(R9), F3 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	RISBGZ	$57, $60, $3, R3, R12 | 
 | 	WFMADB	V2, V0, V6, V0 | 
 | 	MOVD	$·erfctab2069<>+0(SB), R5 | 
 | 	WORD	$0x682C5000	//ld	%f2,0(%r12,%r5) | 
 | 	FMADD	F2, F4, F4 | 
 | 	RISBGN	$0, $15, $48, R3, R4 | 
 | 	WFMADB	V4, V0, V2, V4 | 
 | 	LDGR	R4, F2 | 
 | 	FMADD	F4, F2, F2 | 
 | 	MOVW	R2, R6 | 
 | 	CMPBLE	R6, $0, L20 | 
 | 	MOVW	R1, R6 | 
 | 	CMPBEQ	R6, $0, L21 | 
 | 	WORD	$0xED709240	//mdb	%f7,.L66-.L38(%r9) | 
 | 	BYTE	$0x00 | 
 | 	BYTE	$0x1C | 
 | L21: | 
 | 	FMUL	F7, F2 | 
 | L1: | 
 | 	FMOVD	F2, ret+8(FP) | 
 | 	RET | 
 | L3: | 
 | 	LTDBR	F0, F0 | 
 | 	BLTU	L30 | 
 | 	FMOVD	568(R9), F2 | 
 | 	WFSDB	V0, V2, V0 | 
 | L8: | 
 | 	WFMDB	V0, V0, V4 | 
 | 	FMOVD	560(R9), F2 | 
 | 	FMOVD	552(R9), F6 | 
 | 	FMOVD	544(R9), F1 | 
 | 	WFMADB	V4, V6, V2, V6 | 
 | 	FMOVD	536(R9), F2 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	528(R9), F3 | 
 | 	FMOVD	520(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	512(R9), F3 | 
 | 	FMOVD	504(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	496(R9), F3 | 
 | 	FMOVD	488(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	480(R9), F3 | 
 | 	FMOVD	472(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	464(R9), F3 | 
 | 	FMOVD	456(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	448(R9), F3 | 
 | 	FMOVD	440(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	432(R9), F3 | 
 | 	FMOVD	424(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	WFMADB	V4, V1, V2, V1 | 
 | 	FMOVD	416(R9), F3 | 
 | 	FMOVD	408(R9), F2 | 
 | 	WFMADB	V4, V6, V3, V6 | 
 | 	FMADD	F1, F4, F2 | 
 | 	FMADD	F6, F0, F2 | 
 | 	MOVW	R2, R6 | 
 | 	CMPBGE	R6, $0, L1 | 
 | 	FMOVD	568(R9), F0 | 
 | 	WFSDB	V2, V0, V2 | 
 | 	BR	L1 | 
 | L10: | 
 | 	MOVH	$0x401F, R3 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBLE	R6, R7, L36 | 
 | 	MOVH	$0x402F, R3 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBGT	R6, R7, L13 | 
 | 	FMOVD	400(R9), F3 | 
 | 	FSUB	F1, F3 | 
 | 	VLEG	$0, 392(R9), V20 | 
 | 	WFDDB	V1, V3, V6 | 
 | 	VLEG	$0, 384(R9), V18 | 
 | 	FMOVD	376(R9), F2 | 
 | 	FMOVD	368(R9), F4 | 
 | 	VLEG	$0, 360(R9), V16 | 
 | 	FMOVD	352(R9), F7 | 
 | 	FMOVD	344(R9), F3 | 
 | 	FMUL	F0, F0 | 
 | 	WFMDB	V6, V6, V1 | 
 | 	FMOVD	656(R9), F5 | 
 | 	MOVH	$0x0, R3 | 
 | 	WFMADB	V1, V2, V20, V2 | 
 | 	WFMADB	V1, V4, V18, V4 | 
 | 	WFMADB	V1, V2, V16, V2 | 
 | 	WFMADB	V1, V4, V7, V4 | 
 | 	WFMADB	V1, V2, V3, V2 | 
 | 	FMOVD	336(R9), F3 | 
 | 	WFMADB	V1, V4, V3, V4 | 
 | 	FMOVD	328(R9), F3 | 
 | 	WFMADB	V1, V2, V3, V2 | 
 | 	FMOVD	320(R9), F3 | 
 | 	WFMADB	V1, V4, V3, V1 | 
 | 	FMOVD	312(R9), F7 | 
 | 	WFMADB	V6, V2, V1, V2 | 
 | 	MOVH	$0x0, R1 | 
 | 	FMOVD	664(R9), F3 | 
 | 	FMADD	F2, F6, F7 | 
 | 	WFMADB	V0, V5, V3, V5 | 
 | 	BR	L11 | 
 | L35: | 
 | 	WORD	$0xB3130010	//lcdbr	%f1,%f0 | 
 | 	BR	L9 | 
 | L36: | 
 | 	FMOVD	304(R9), F3 | 
 | 	FSUB	F1, F3 | 
 | 	VLEG	$0, 296(R9), V20 | 
 | 	WFDDB	V1, V3, V6 | 
 | 	FMOVD	288(R9), F5 | 
 | 	FMOVD	280(R9), F1 | 
 | 	FMOVD	272(R9), F2 | 
 | 	VLEG	$0, 264(R9), V18 | 
 | 	VLEG	$0, 256(R9), V16 | 
 | 	FMOVD	248(R9), F3 | 
 | 	FMOVD	240(R9), F4 | 
 | 	WFMDB	V6, V6, V7 | 
 | 	FMUL	F0, F0 | 
 | 	MOVH	$0x0, R3 | 
 | 	FMADD	F5, F7, F1 | 
 | 	WFMADB	V7, V2, V20, V2 | 
 | 	WFMADB	V7, V1, V18, V1 | 
 | 	WFMADB	V7, V2, V16, V2 | 
 | 	WFMADB	V7, V1, V3, V1 | 
 | 	WFMADB	V7, V2, V4, V2 | 
 | 	FMOVD	232(R9), F4 | 
 | 	WFMADB	V7, V1, V4, V1 | 
 | 	FMOVD	224(R9), F4 | 
 | 	WFMADB	V7, V2, V4, V2 | 
 | 	FMOVD	216(R9), F4 | 
 | 	WFMADB	V7, V1, V4, V1 | 
 | 	FMOVD	208(R9), F4 | 
 | 	MOVH	$0x0, R1 | 
 | 	WFMADB	V7, V2, V4, V7 | 
 | 	FMOVD	656(R9), F5 | 
 | 	WFMADB	V6, V1, V7, V1 | 
 | 	FMOVD	664(R9), F3 | 
 | 	FMOVD	200(R9), F7 | 
 | 	WFMADB	V0, V5, V3, V5 | 
 | 	FMADD	F1, F6, F7 | 
 | 	BR	L11 | 
 | L4: | 
 | 	FMOVD	192(R9), F1 | 
 | 	FMADD	F0, F0, F1 | 
 | 	FMOVD	184(R9), F3 | 
 | 	WFMDB	V1, V1, V0 | 
 | 	FMOVD	176(R9), F4 | 
 | 	FMOVD	168(R9), F6 | 
 | 	WFMADB	V0, V4, V3, V4 | 
 | 	FMOVD	160(R9), F3 | 
 | 	WFMADB	V0, V6, V3, V6 | 
 | 	FMOVD	152(R9), F5 | 
 | 	FMOVD	144(R9), F3 | 
 | 	WFMADB	V0, V4, V5, V4 | 
 | 	WFMADB	V0, V6, V3, V6 | 
 | 	FMOVD	136(R9), F5 | 
 | 	FMOVD	128(R9), F3 | 
 | 	WFMADB	V0, V4, V5, V4 | 
 | 	WFMADB	V0, V6, V3, V6 | 
 | 	FMOVD	120(R9), F5 | 
 | 	FMOVD	112(R9), F3 | 
 | 	WFMADB	V0, V4, V5, V4 | 
 | 	WFMADB	V0, V6, V3, V6 | 
 | 	FMOVD	104(R9), F5 | 
 | 	FMOVD	96(R9), F3 | 
 | 	WFMADB	V0, V4, V5, V4 | 
 | 	WFMADB	V0, V6, V3, V0 | 
 | 	FMOVD	F2, F6 | 
 | 	FMADD	F4, F1, F0 | 
 | 	WORD	$0xED609318	//sdb	%f6,.L39-.L38(%r9) | 
 | 	BYTE	$0x00 | 
 | 	BYTE	$0x1B | 
 | 	WFMSDB	V2, V0, V6, V2 | 
 | 	FMOVD	F2, ret+8(FP) | 
 | 	RET | 
 | L30: | 
 | 	WORD	$0xED009238	//adb	%f0,.L67-.L38(%r9) | 
 | 	BYTE	$0x00 | 
 | 	BYTE	$0x1A | 
 | 	BR	L8 | 
 | L20: | 
 | 	FMOVD	88(R9), F0 | 
 | 	WFMADB	V7, V2, V0, V2 | 
 | 	WORD	$0xB3130022	//lcdbr	%f2,%f2 | 
 | 	FMOVD	F2, ret+8(FP) | 
 | 	RET | 
 | L13: | 
 | 	MOVH	$0x403A, R3 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBLE	R6, R7, L4 | 
 | 	WORD	$0xED109050	//cdb	%f1,.L128-.L38(%r9) | 
 | 	BYTE	$0x00 | 
 | 	BYTE	$0x19 | 
 | 	BGE	L37 | 
 | 	BVS	L37 | 
 | 	FMOVD	72(R9), F6 | 
 | 	FSUB	F1, F6 | 
 | 	MOVH	$0x1000, R3 | 
 | 	FDIV	F1, F6 | 
 | 	MOVH	$0x1000, R1 | 
 | L17: | 
 | 	WFMDB	V6, V6, V1 | 
 | 	FMOVD	64(R9), F2 | 
 | 	FMOVD	56(R9), F4 | 
 | 	FMOVD	48(R9), F3 | 
 | 	WFMADB	V1, V3, V2, V3 | 
 | 	FMOVD	40(R9), F2 | 
 | 	WFMADB	V1, V2, V4, V2 | 
 | 	FMOVD	32(R9), F4 | 
 | 	WFMADB	V1, V3, V4, V3 | 
 | 	FMOVD	24(R9), F4 | 
 | 	WFMADB	V1, V2, V4, V2 | 
 | 	FMOVD	16(R9), F4 | 
 | 	WFMADB	V1, V3, V4, V3 | 
 | 	FMOVD	8(R9), F4 | 
 | 	WFMADB	V1, V2, V4, V1 | 
 | 	FMUL	F0, F0 | 
 | 	WFMADB	V3, V6, V1, V3 | 
 | 	FMOVD	656(R9), F5 | 
 | 	FMOVD	664(R9), F4 | 
 | 	FMOVD	0(R9), F7 | 
 | 	WFMADB	V0, V5, V4, V5 | 
 | 	FMADD	F6, F3, F7 | 
 | 	BR	L11 | 
 | L14: | 
 | 	FMOVD	72(R9), F6 | 
 | 	FSUB	F1, F6 | 
 | 	MOVH	$0x403A, R3 | 
 | 	FDIV	F1, F6 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R3, R7 | 
 | 	CMPBEQ	R6, R7, L23 | 
 | 	MOVH	$0x0, R3 | 
 | 	MOVH	$0x0, R1 | 
 | 	BR	L17 | 
 | L37: | 
 | 	WFCEDBS	V0, V0, V0 | 
 | 	BVS	L1 | 
 | 	MOVW	R2, R6 | 
 | 	CMPBLE	R6, $0, L18 | 
 | 	MOVH	$0x7FEF, R2 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R2, R7 | 
 | 	CMPBGT	R6, R7, L24 | 
 |  | 
 | 	WORD	$0xA5400010	//iihh	%r4,16 | 
 | 	LDGR	R4, F2 | 
 | 	FMUL	F2, F2 | 
 | 	BR	L1 | 
 | L23: | 
 | 	MOVH	$0x1000, R3 | 
 | 	MOVH	$0x1000, R1 | 
 | 	BR	L17 | 
 | L24: | 
 | 	FMOVD	$0, F2 | 
 | 	BR	L1 | 
 | L18: | 
 | 	MOVH	$0x7FEF, R2 | 
 | 	MOVW	R1, R6 | 
 | 	MOVW	R2, R7 | 
 | 	CMPBGT	R6, R7, L25 | 
 | 	WORD	$0xA5408010	//iihh	%r4,32784 | 
 | 	FMOVD	568(R9), F2 | 
 | 	LDGR	R4, F0 | 
 | 	FMADD	F2, F0, F2 | 
 | 	BR	L1 | 
 | L25: | 
 | 	FMOVD	568(R9), F2 | 
 | 	BR	L1 | 
 | usego: | 
 | 	BR	·erfc(SB) |