Home | History | Annotate | Download | only in math
      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 
    531