erfc_s390x.s raw

   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  	LCDBR	F0, F1
 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  	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)
 528