789 lines · plain
1; RUN: llc -enable-ppc-gen-scalar-mass -O3 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s2; RUN: llc -enable-ppc-gen-scalar-mass -O3 -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck %s3 4declare float @acosf (float);5declare float @acoshf (float);6declare float @asinf (float);7declare float @asinhf (float);8declare float @atan2f (float, float);9declare float @atanf (float);10declare float @atanhf (float);11declare float @cbrtf (float);12declare float @copysignf (float, float);13declare float @cosf (float);14declare float @coshf (float);15declare float @erfcf (float);16declare float @erff (float);17declare float @expf (float);18declare float @expm1f (float);19declare float @hypotf (float, float);20declare float @lgammaf (float);21declare float @log10f (float);22declare float @log1pf (float);23declare float @logf (float);24declare float @powf (float, float);25declare float @rintf (float);26declare float @sinf (float);27declare float @sinhf (float);28declare float @tanf (float);29declare float @tanhf (float);30declare double @acos (double);31declare double @acosh (double);32declare double @anint (double);33declare double @asin (double);34declare double @asinh (double);35declare double @atan (double);36declare double @atan2 (double, double);37declare double @atanh (double);38declare double @cbrt (double);39declare double @copysign (double, double);40declare double @cos (double);41declare double @cosh (double);42declare double @cosisin (double);43declare double @dnint (double);44declare double @erf (double);45declare double @erfc (double);46declare double @exp (double);47declare double @expm1 (double);48declare double @hypot (double, double);49declare double @lgamma (double);50declare double @log (double);51declare double @log10 (double);52declare double @log1p (double);53declare double @pow (double, double);54declare double @rsqrt (double);55declare double @sin (double);56declare double @sincos (double);57declare double @sinh (double);58declare double @sqrt (double);59declare double @tan (double);60declare double @tanh (double);61declare float @__acosf_finite (float);62declare float @__acoshf_finite (float);63declare float @__asinf_finite (float);64declare float @__atan2f_finite (float, float);65declare float @__atanhf_finite (float);66declare float @__coshf_finite (float);67declare float @__expf_finite (float);68declare float @__logf_finite (float);69declare float @__log10f_finite (float);70declare float @__powf_finite (float, float);71declare float @__sinhf_finite (float);72declare double @__acos_finite (double);73declare double @__acosh_finite (double);74declare double @__asin_finite (double);75declare double @__atan2_finite (double, double);76declare double @__atanh_finite (double);77declare double @__cosh_finite (double);78declare double @__exp_finite (double);79declare double @__log_finite (double);80declare double @__log10_finite (double);81declare double @__pow_finite (double, double);82declare double @__sinh_finite (double);83 84define float @acosf_f32(float %a) {85; CHECK-LABEL: acosf_f3286; CHECK: __xl_acosf87; CHECK: blr88entry:89 %call = tail call afn float @acosf(float %a)90 ret float %call91}92 93define float @acoshf_f32(float %a) {94; CHECK-LABEL: acoshf_f3295; CHECK: __xl_acoshf96; CHECK: blr97entry:98 %call = tail call afn float @acoshf(float %a)99 ret float %call100}101 102define float @asinf_f32(float %a) {103; CHECK-LABEL: asinf_f32104; CHECK: __xl_asinf105; CHECK: blr106entry:107 %call = tail call afn float @asinf(float %a)108 ret float %call109}110 111define float @asinhf_f32(float %a) {112; CHECK-LABEL: asinhf_f32113; CHECK: __xl_asinhf114; CHECK: blr115entry:116 %call = tail call afn float @asinhf(float %a)117 ret float %call118}119 120define float @atan2f_f32(float %a, float %b) {121; CHECK-LABEL: atan2f_f32122; CHECK: __xl_atan2f123; CHECK: blr124entry:125 %call = tail call afn float @atan2f(float %a, float %b)126 ret float %call127}128 129define float @atanf_f32(float %a) {130; CHECK-LABEL: atanf_f32131; CHECK: __xl_atanf132; CHECK: blr133entry:134 %call = tail call afn float @atanf(float %a)135 ret float %call136}137 138define float @atanhf_f32(float %a) {139; CHECK-LABEL: atanhf_f32140; CHECK: __xl_atanhf141; CHECK: blr142entry:143 %call = tail call afn float @atanhf(float %a)144 ret float %call145}146 147define float @cbrtf_f32(float %a) {148; CHECK-LABEL: cbrtf_f32149; CHECK: __xl_cbrtf150; CHECK: blr151entry:152 %call = tail call afn float @cbrtf(float %a)153 ret float %call154}155 156define float @copysignf_f32(float %a, float %b) {157; CHECK-LABEL: copysignf_f32158; CHECK: copysignf159; CHECK: blr160entry:161 %call = tail call afn float @copysignf(float %a, float %b)162 ret float %call163}164 165define float @cosf_f32(float %a) {166; CHECK-LABEL: cosf_f32167; CHECK: __xl_cosf168; CHECK: blr169entry:170 %call = tail call afn float @cosf(float %a)171 ret float %call172}173 174define float @coshf_f32(float %a) {175; CHECK-LABEL: coshf_f32176; CHECK: __xl_coshf177; CHECK: blr178entry:179 %call = tail call afn float @coshf(float %a)180 ret float %call181}182 183define float @erfcf_f32(float %a) {184; CHECK-LABEL: erfcf_f32185; CHECK: __xl_erfcf186; CHECK: blr187entry:188 %call = tail call afn float @erfcf(float %a)189 ret float %call190}191 192define float @erff_f32(float %a) {193; CHECK-LABEL: erff_f32194; CHECK: __xl_erff195; CHECK: blr196entry:197 %call = tail call afn float @erff(float %a)198 ret float %call199}200 201define float @expf_f32(float %a) {202; CHECK-LABEL: expf_f32203; CHECK: __xl_expf204; CHECK: blr205entry:206 %call = tail call afn float @expf(float %a)207 ret float %call208}209 210define float @expm1f_f32(float %a) {211; CHECK-LABEL: expm1f_f32212; CHECK: __xl_expm1f213; CHECK: blr214entry:215 %call = tail call afn float @expm1f(float %a)216 ret float %call217}218 219define float @hypotf_f32(float %a, float %b) {220; CHECK-LABEL: hypotf_f32221; CHECK: __xl_hypotf222; CHECK: blr223entry:224 %call = tail call afn float @hypotf(float %a, float %b)225 ret float %call226}227 228define float @lgammaf_f32(float %a) {229; CHECK-LABEL: lgammaf_f32230; CHECK: __xl_lgammaf231; CHECK: blr232entry:233 %call = tail call afn float @lgammaf(float %a)234 ret float %call235}236 237define float @log10f_f32(float %a) {238; CHECK-LABEL: log10f_f32239; CHECK: __xl_log10f240; CHECK: blr241entry:242 %call = tail call afn float @log10f(float %a)243 ret float %call244}245 246define float @log1pf_f32(float %a) {247; CHECK-LABEL: log1pf_f32248; CHECK: __xl_log1pf249; CHECK: blr250entry:251 %call = tail call afn float @log1pf(float %a)252 ret float %call253}254 255define float @logf_f32(float %a) {256; CHECK-LABEL: logf_f32257; CHECK: __xl_logf258; CHECK: blr259entry:260 %call = tail call afn float @logf(float %a)261 ret float %call262}263 264define float @powf_f32(float %a, float %b) {265; CHECK-LABEL: powf_f32266; CHECK: __xl_powf267; CHECK: blr268entry:269 %call = tail call afn float @powf(float %a, float %b)270 ret float %call271}272 273define float @rintf_f32(float %a) {274; CHECK-LABEL: rintf_f32275; CHECK-NOT: __xl_rintf276; CHECK: blr277entry:278 %call = tail call afn float @rintf(float %a)279 ret float %call280}281 282define float @sinf_f32(float %a) {283; CHECK-LABEL: sinf_f32284; CHECK: __xl_sinf285; CHECK: blr286entry:287 %call = tail call afn float @sinf(float %a)288 ret float %call289}290 291define float @sinhf_f32(float %a) {292; CHECK-LABEL: sinhf_f32293; CHECK: __xl_sinhf294; CHECK: blr295entry:296 %call = tail call afn float @sinhf(float %a)297 ret float %call298}299 300define float @tanf_f32(float %a) {301; CHECK-LABEL: tanf_f32302; CHECK: __xl_tanf303; CHECK: blr304entry:305 %call = tail call afn float @tanf(float %a)306 ret float %call307}308 309define float @tanhf_f32(float %a) {310; CHECK-LABEL: tanhf_f32311; CHECK: __xl_tanhf312; CHECK: blr313entry:314 %call = tail call afn float @tanhf(float %a)315 ret float %call316}317 318define double @acos_f64(double %a) {319; CHECK-LABEL: acos_f64320; CHECK: __xl_acos321; CHECK: blr322entry:323 %call = tail call afn double @acos(double %a)324 ret double %call325}326 327define double @acosh_f64(double %a) {328; CHECK-LABEL: acosh_f64329; CHECK: __xl_acosh330; CHECK: blr331entry:332 %call = tail call afn double @acosh(double %a)333 ret double %call334}335 336define double @anint_f64(double %a) {337; CHECK-LABEL: anint_f64338; CHECK-NOT: __xl_anint339; CHECK: blr340entry:341 %call = tail call afn double @anint(double %a)342 ret double %call343}344 345define double @asin_f64(double %a) {346; CHECK-LABEL: asin_f64347; CHECK: __xl_asin348; CHECK: blr349entry:350 %call = tail call afn double @asin(double %a)351 ret double %call352}353 354define double @asinh_f64(double %a) {355; CHECK-LABEL: asinh_f64356; CHECK: __xl_asinh357; CHECK: blr358entry:359 %call = tail call afn double @asinh(double %a)360 ret double %call361}362 363define double @atan_f64(double %a) {364; CHECK-LABEL: atan_f64365; CHECK: __xl_atan366; CHECK: blr367entry:368 %call = tail call afn double @atan(double %a)369 ret double %call370}371 372define double @atan2_f64(double %a, double %b) {373; CHECK-LABEL: atan2_f64374; CHECK: __xl_atan2375; CHECK: blr376entry:377 %call = tail call afn double @atan2(double %a, double %b)378 ret double %call379}380 381define double @atanh_f64(double %a) {382; CHECK-LABEL: atanh_f64383; CHECK: __xl_atanh384; CHECK: blr385entry:386 %call = tail call afn double @atanh(double %a)387 ret double %call388}389 390define double @cbrt_f64(double %a) {391; CHECK-LABEL: cbrt_f64392; CHECK: __xl_cbrt393; CHECK: blr394entry:395 %call = tail call afn double @cbrt(double %a)396 ret double %call397}398 399define double @copysign_f64(double %a, double %b) {400; CHECK-LABEL: copysign_f64401; CHECK: copysign402; CHECK: blr403entry:404 %call = tail call afn double @copysign(double %a, double %b)405 ret double %call406}407 408define double @cos_f64(double %a) {409; CHECK-LABEL: cos_f64410; CHECK: __xl_cos411; CHECK: blr412entry:413 %call = tail call afn double @cos(double %a)414 ret double %call415}416 417define double @cosh_f64(double %a) {418; CHECK-LABEL: cosh_f64419; CHECK: __xl_cosh420; CHECK: blr421entry:422 %call = tail call afn double @cosh(double %a)423 ret double %call424}425 426define double @cosisin_f64(double %a) {427; CHECK-LABEL: cosisin_f64428; CHECK-NOT: __xl_cosisin429; CHECK: blr430entry:431 %call = tail call afn double @cosisin(double %a)432 ret double %call433}434 435define double @dnint_f64(double %a) {436; CHECK-LABEL: dnint_f64437; CHECK-NOT: __xl_dnint438; CHECK: blr439entry:440 %call = tail call afn double @dnint(double %a)441 ret double %call442}443 444define double @erf_f64(double %a) {445; CHECK-LABEL: erf_f64446; CHECK: __xl_erf447; CHECK: blr448entry:449 %call = tail call afn double @erf(double %a)450 ret double %call451}452 453define double @erfc_f64(double %a) {454; CHECK-LABEL: erfc_f64455; CHECK: __xl_erfc456; CHECK: blr457entry:458 %call = tail call afn double @erfc(double %a)459 ret double %call460}461 462define double @exp_f64(double %a) {463; CHECK-LABEL: exp_f64464; CHECK: __xl_exp465; CHECK: blr466entry:467 %call = tail call afn double @exp(double %a)468 ret double %call469}470 471define double @expm1_f64(double %a) {472; CHECK-LABEL: expm1_f64473; CHECK: __xl_expm1474; CHECK: blr475entry:476 %call = tail call afn double @expm1(double %a)477 ret double %call478}479 480define double @hypot_f64(double %a, double %b) {481; CHECK-LABEL: hypot_f64482; CHECK: __xl_hypot483; CHECK: blr484entry:485 %call = tail call afn double @hypot(double %a, double %b)486 ret double %call487}488 489define double @lgamma_f64(double %a) {490; CHECK-LABEL: lgamma_f64491; CHECK: __xl_lgamma492; CHECK: blr493entry:494 %call = tail call afn double @lgamma(double %a)495 ret double %call496}497 498define double @log_f64(double %a) {499; CHECK-LABEL: log_f64500; CHECK: __xl_log501; CHECK: blr502entry:503 %call = tail call afn double @log(double %a)504 ret double %call505}506 507define double @log10_f64(double %a) {508; CHECK-LABEL: log10_f64509; CHECK: __xl_log10510; CHECK: blr511entry:512 %call = tail call afn double @log10(double %a)513 ret double %call514}515 516define double @log1p_f64(double %a) {517; CHECK-LABEL: log1p_f64518; CHECK: __xl_log1p519; CHECK: blr520entry:521 %call = tail call afn double @log1p(double %a)522 ret double %call523}524 525define double @pow_f64(double %a, double %b) {526; CHECK-LABEL: pow_f64527; CHECK: __xl_pow528; CHECK: blr529entry:530 %call = tail call afn double @pow(double %a, double %b)531 ret double %call532}533 534define double @rsqrt_f64(double %a) {535; CHECK-LABEL: rsqrt_f64536; CHECK: __xl_rsqrt537; CHECK: blr538entry:539 %call = tail call afn double @rsqrt(double %a)540 ret double %call541}542 543define double @sin_f64(double %a) {544; CHECK-LABEL: sin_f64545; CHECK: __xl_sin546; CHECK: blr547entry:548 %call = tail call afn double @sin(double %a)549 ret double %call550}551 552define double @sincos_f64(double %a) {553; CHECK-LABEL: sincos_f64554; CHECK-NOT: __xl_sincos555; CHECK: blr556entry:557 %call = tail call afn double @sincos(double %a)558 ret double %call559}560 561define double @sinh_f64(double %a) {562; CHECK-LABEL: sinh_f64563; CHECK: __xl_sinh564; CHECK: blr565entry:566 %call = tail call afn double @sinh(double %a)567 ret double %call568}569 570define double @sqrt_f64(double %a) {571; CHECK-LABEL: sqrt_f64572; CHECK: __xl_sqrt573; CHECK: blr574entry:575 %call = tail call afn double @sqrt(double %a)576 ret double %call577}578 579define double @tan_f64(double %a) {580; CHECK-LABEL: tan_f64581; CHECK: __xl_tan582; CHECK: blr583entry:584 %call = tail call afn double @tan(double %a)585 ret double %call586}587 588define double @tanh_f64(double %a) {589; CHECK-LABEL: tanh_f64590; CHECK: __xl_tanh591; CHECK: blr592entry:593 %call = tail call afn double @tanh(double %a)594 ret double %call595}596 597define float @__acosf_finite_f32(float %a) {598; CHECK-LABEL: __acosf_finite_f32599; CHECK: __xl_acosf600; CHECK: blr601entry:602 %call = tail call afn float @__acosf_finite(float %a)603 ret float %call604}605 606define float @__acoshf_finite_f32(float %a) {607; CHECK-LABEL: __acoshf_finite_f32608; CHECK: __xl_acoshf609; CHECK: blr610entry:611 %call = tail call afn float @__acoshf_finite(float %a)612 ret float %call613}614 615define float @__asinf_finite_f32(float %a) {616; CHECK-LABEL: __asinf_finite_f32617; CHECK: __xl_asinf618; CHECK: blr619entry:620 %call = tail call afn float @__asinf_finite(float %a)621 ret float %call622}623 624define float @__atan2f_finite_f32(float %a, float %b) {625; CHECK-LABEL: __atan2f_finite_f32626; CHECK: __xl_atan2f627; CHECK: blr628entry:629 %call = tail call afn float @__atan2f_finite(float %a, float %b)630 ret float %call631}632 633define float @__atanhf_finite_f32(float %a) {634; CHECK-LABEL: __atanhf_finite_f32635; CHECK: __xl_atanhf636; CHECK: blr637entry:638 %call = tail call afn float @__atanhf_finite(float %a)639 ret float %call640}641 642define float @__coshf_finite_f32(float %a) {643; CHECK-LABEL: __coshf_finite_f32644; CHECK: __xl_coshf645; CHECK: blr646entry:647 %call = tail call afn float @__coshf_finite(float %a)648 ret float %call649}650define float @__expf_finite_f32(float %a) {651; CHECK-LABEL: __expf_finite_f32652; CHECK: __xl_expf653; CHECK: blr654entry:655 %call = tail call afn float @__expf_finite(float %a)656 ret float %call657}658define float @__logf_finite_f32(float %a) {659; CHECK-LABEL: __logf_finite_f32660; CHECK: __xl_logf661; CHECK: blr662entry:663 %call = tail call afn float @__logf_finite(float %a)664 ret float %call665}666define float @__log10f_finite_f32(float %a) {667; CHECK-LABEL: __log10f_finite_f32668; CHECK: __xl_log10f669; CHECK: blr670entry:671 %call = tail call afn float @__log10f_finite(float %a)672 ret float %call673}674define float @__powf_finite_f32(float %a, float %b) {675; CHECK-LABEL: __powf_finite_f32676; CHECK: __xl_powf677; CHECK: blr678entry:679 %call = tail call afn float @__powf_finite(float %a, float %b)680 ret float %call681}682define float @__sinhf_finite_f32(float %a) {683; CHECK-LABEL: __sinhf_finite_f32684; CHECK: __xl_sinhf685; CHECK: blr686entry:687 %call = tail call afn float @__sinhf_finite(float %a)688 ret float %call689}690 691define double @__acos_finite_f64(double %a) {692; CHECK-LABEL: __acos_finite_f64693; CHECK: __xl_acos694; CHECK: blr695entry:696 %call = tail call afn double @__acos_finite(double %a)697 ret double %call698}699 700define double @__acosh_finite_f64(double %a) {701; CHECK-LABEL: __acosh_finite_f64702; CHECK: __xl_acosh703; CHECK: blr704entry:705 %call = tail call afn double @__acosh_finite(double %a)706 ret double %call707}708 709define double @__asin_finite_f64(double %a) {710; CHECK-LABEL: __asin_finite_f64711; CHECK: __xl_asin712; CHECK: blr713entry:714 %call = tail call afn double @__asin_finite(double %a)715 ret double %call716}717 718define double @__atan2_finite_f64(double %a, double %b) {719; CHECK-LABEL: __atan2_finite_f64720; CHECK: __xl_atan2721; CHECK: blr722entry:723 %call = tail call afn double @__atan2_finite(double %a, double %b)724 ret double %call725}726 727define double @__atanh_finite_f64(double %a) {728; CHECK-LABEL: __atanh_finite_f64729; CHECK: __xl_atanh730; CHECK: blr731entry:732 %call = tail call afn double @__atanh_finite(double %a)733 ret double %call734}735 736define double @__cosh_finite_f64(double %a) {737; CHECK-LABEL: __cosh_finite_f64738; CHECK: __xl_cosh739; CHECK: blr740entry:741 %call = tail call afn double @__cosh_finite(double %a)742 ret double %call743}744 745define double @__exp_finite_f64(double %a) {746; CHECK-LABEL: __exp_finite_f64747; CHECK: __xl_exp748; CHECK: blr749entry:750 %call = tail call afn double @__exp_finite(double %a)751 ret double %call752}753 754define double @__log_finite_f64(double %a) {755; CHECK-LABEL: __log_finite_f64756; CHECK: __xl_log757; CHECK: blr758entry:759 %call = tail call afn double @__log_finite(double %a)760 ret double %call761}762 763define double @__log10_finite_f64(double %a) {764; CHECK-LABEL: __log10_finite_f64765; CHECK: __xl_log10766; CHECK: blr767entry:768 %call = tail call afn double @__log10_finite(double %a)769 ret double %call770}771 772define double @__pow_finite_f64(double %a, double %b) {773; CHECK-LABEL: __pow_finite_f64774; CHECK: __xl_pow775; CHECK: blr776entry:777 %call = tail call afn double @__pow_finite(double %a, double %b)778 ret double %call779}780 781define double @__sinh_finite_f64(double %a) {782; CHECK-LABEL: __sinh_finite_f64783; CHECK: __xl_sinh784; CHECK: blr785entry:786 %call = tail call afn double @__sinh_finite(double %a)787 ret double %call788}789