brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.0 KiB · 2c4622c Raw
549 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S -passes=hipstdpar-math-fixup %s | FileCheck %s3 4define void @test_acos(double %dbl, float %flt) {5; CHECK-LABEL: define void @test_acos(6; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {7; CHECK-NEXT:  [[ENTRY:.*:]]8; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_acos_f64(double [[DBL]])9; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_acos_f32(float [[FLT]])10; CHECK-NEXT:    ret void11;12entry:13  %0 = call double @llvm.acos.f64(double %dbl)14  %1 = call float @llvm.acos.f32(float %flt)15  ret void16}17 18define void @test_acosh(double %dbl, float %flt) {19; CHECK-LABEL: define void @test_acosh(20; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {21; CHECK-NEXT:  [[ENTRY:.*:]]22; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_acosh_f64(double [[DBL]])23; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_acosh_f32(float [[FLT]])24; CHECK-NEXT:    ret void25;26entry:27  %0 = call double @acosh(double %dbl)28  %1 = call float @acoshf(float %flt)29  ret void30}31 32define void @test_asin(double %dbl, float %flt) {33; CHECK-LABEL: define void @test_asin(34; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {35; CHECK-NEXT:  [[ENTRY:.*:]]36; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_asin_f64(double [[DBL]])37; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_asin_f32(float [[FLT]])38; CHECK-NEXT:    ret void39;40entry:41  %0 = call double @llvm.asin.f64(double %dbl)42  %1 = call float @llvm.asin.f32(float %flt)43  ret void44}45 46define void @test_asinh(double %dbl, float %flt) {47; CHECK-LABEL: define void @test_asinh(48; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {49; CHECK-NEXT:  [[ENTRY:.*:]]50; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_asinh_f64(double [[DBL]])51; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_asinh_f32(float [[FLT]])52; CHECK-NEXT:    ret void53;54entry:55  %0 = call double @asinh(double %dbl)56  %1 = call float @asinhf(float %flt)57  ret void58}59 60define void @test_atan(double %dbl, float %flt) {61; CHECK-LABEL: define void @test_atan(62; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {63; CHECK-NEXT:  [[ENTRY:.*:]]64; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_atan_f64(double [[DBL]])65; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_atan_f32(float [[FLT]])66; CHECK-NEXT:    ret void67;68entry:69  %0 = call double @llvm.atan.f64(double %dbl)70  %1 = call float @llvm.atan.f32(float %flt)71  ret void72}73 74define void @test_atanh(double %dbl, float %flt) {75; CHECK-LABEL: define void @test_atanh(76; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {77; CHECK-NEXT:  [[ENTRY:.*:]]78; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_atanh_f64(double [[DBL]])79; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_atanh_f32(float [[FLT]])80; CHECK-NEXT:    ret void81;82entry:83  %0 = call double @atanh(double %dbl)84  %1 = call float @atanhf(float %flt)85  ret void86}87 88define void @test_atan2(double %dbl, float %flt) {89; CHECK-LABEL: define void @test_atan2(90; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {91; CHECK-NEXT:  [[ENTRY:.*:]]92; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_atan2_f64(double [[DBL]], double [[DBL]])93; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_atan2_f32(float [[FLT]], float [[FLT]])94; CHECK-NEXT:    ret void95;96entry:97  %0 = call double @llvm.atan2.f64(double %dbl, double %dbl)98  %1 = call float @llvm.atan2.f32(float %flt, float %flt)99  ret void100}101 102define void @test_cbrt(double %dbl, float %flt) {103; CHECK-LABEL: define void @test_cbrt(104; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {105; CHECK-NEXT:  [[ENTRY:.*:]]106; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_cbrt_f64(double [[DBL]])107; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_cbrt_f32(float [[FLT]])108; CHECK-NEXT:    ret void109;110entry:111  %0 = call double @cbrt(double %dbl)112  %1 = call float @cbrtf(float %flt)113  ret void114}115 116define void @test_cos(double %dbl) {117; CHECK-LABEL: define void @test_cos(118; CHECK-SAME: double [[DBL:%.*]]) {119; CHECK-NEXT:  [[ENTRY:.*:]]120; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_cos_f64(double [[DBL]])121; CHECK-NEXT:    ret void122;123entry:124  %0 = call double @llvm.cos.f64(double %dbl)125  ret void126}127 128define void @test_cosh(double %dbl, float %flt) {129; CHECK-LABEL: define void @test_cosh(130; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {131; CHECK-NEXT:  [[ENTRY:.*:]]132; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_cosh_f64(double [[DBL]])133; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_cosh_f32(float [[FLT]])134; CHECK-NEXT:    ret void135;136entry:137  %0 = call double @llvm.cosh.f64(double %dbl)138  %1 = call float @llvm.cosh.f32(float %flt)139  ret void140}141 142define void @test_erf(double %dbl, float %flt) {143; CHECK-LABEL: define void @test_erf(144; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {145; CHECK-NEXT:  [[ENTRY:.*:]]146; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_erf_f64(double [[DBL]])147; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_erf_f32(float [[FLT]])148; CHECK-NEXT:    ret void149;150entry:151  %0 = call double @erf(double %dbl)152  %1 = call float @erff(float %flt)153  ret void154}155 156define void @test_erfc(double %dbl, float %flt) {157; CHECK-LABEL: define void @test_erfc(158; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {159; CHECK-NEXT:  [[ENTRY:.*:]]160; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_erfc_f64(double [[DBL]])161; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_erfc_f32(float [[FLT]])162; CHECK-NEXT:    ret void163;164entry:165  %0 = call double @erfc(double %dbl)166  %1 = call float @erfcf(float %flt)167  ret void168}169 170define void @test_exp(double %dbl) {171; CHECK-LABEL: define void @test_exp(172; CHECK-SAME: double [[DBL:%.*]]) {173; CHECK-NEXT:  [[ENTRY:.*:]]174; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_exp_f64(double [[DBL]])175; CHECK-NEXT:    ret void176;177entry:178  %0 = call double @llvm.exp.f64(double %dbl)179  ret void180}181 182define void @test_exp2(double %dbl) {183; CHECK-LABEL: define void @test_exp2(184; CHECK-SAME: double [[DBL:%.*]]) {185; CHECK-NEXT:  [[ENTRY:.*:]]186; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_exp2_f64(double [[DBL]])187; CHECK-NEXT:    ret void188;189entry:190  %0 = call double @llvm.exp2.f64(double %dbl)191  ret void192}193 194define void @test_expm1(double %dbl, float %flt) {195; CHECK-LABEL: define void @test_expm1(196; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {197; CHECK-NEXT:  [[ENTRY:.*:]]198; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_expm1_f64(double [[DBL]])199; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_expm1_f32(float [[FLT]])200; CHECK-NEXT:    ret void201;202entry:203  %0 = call double @expm1(double %dbl)204  %1 = call float @expm1f(float %flt)205  ret void206}207 208define void @test_fdim(double %dbl, float %flt) {209; CHECK-LABEL: define void @test_fdim(210; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {211; CHECK-NEXT:  [[ENTRY:.*:]]212; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_fdim_f64(double [[DBL]], double [[DBL]])213; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_fdim_f32(float [[FLT]], float [[FLT]])214; CHECK-NEXT:    ret void215;216entry:217  %0 = call double @fdim(double %dbl, double %dbl)218  %1 = call float @fdimf(float %flt, float %flt)219  ret void220}221 222define void @test_hypot(double %dbl, float %flt) {223; CHECK-LABEL: define void @test_hypot(224; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {225; CHECK-NEXT:  [[ENTRY:.*:]]226; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_hypot_f64(double [[DBL]], double [[DBL]])227; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_hypot_f32(float [[FLT]], float [[FLT]])228; CHECK-NEXT:    ret void229;230entry:231  %0 = call double @hypot(double %dbl, double %dbl)232  %1 = call float @hypotf(float %flt, float %flt)233  ret void234}235 236define void @test_lgamma(double %dbl, float %flt) {237; CHECK-LABEL: define void @test_lgamma(238; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {239; CHECK-NEXT:  [[ENTRY:.*:]]240; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_lgamma_f64(double [[DBL]])241; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_lgamma_f32(float [[FLT]])242; CHECK-NEXT:    ret void243;244entry:245  %0 = call double @lgamma(double %dbl)246  %1 = call float @lgammaf(float %flt)247  ret void248}249 250define void @test_log(double %dbl) {251; CHECK-LABEL: define void @test_log(252; CHECK-SAME: double [[DBL:%.*]]) {253; CHECK-NEXT:  [[ENTRY:.*:]]254; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_log_f64(double [[DBL]])255; CHECK-NEXT:    ret void256;257entry:258  %0 = call double @llvm.log.f64(double %dbl)259  ret void260}261 262define void @test_log10(double %dbl) {263; CHECK-LABEL: define void @test_log10(264; CHECK-SAME: double [[DBL:%.*]]) {265; CHECK-NEXT:  [[ENTRY:.*:]]266; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_log10_f64(double [[DBL]])267; CHECK-NEXT:    ret void268;269entry:270  %0 = call double @llvm.log10.f64(double %dbl)271  ret void272}273 274define void @test_log2(double %dbl) {275; CHECK-LABEL: define void @test_log2(276; CHECK-SAME: double [[DBL:%.*]]) {277; CHECK-NEXT:  [[ENTRY:.*:]]278; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_log2_f64(double [[DBL]])279; CHECK-NEXT:    ret void280;281entry:282  %0 = call double @llvm.log2.f64(double %dbl)283  ret void284}285 286define void @test_log1p(double %dbl, float %flt) {287; CHECK-LABEL: define void @test_log1p(288; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {289; CHECK-NEXT:  [[ENTRY:.*:]]290; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_log1p_f64(double [[DBL]])291; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_log1p_f32(float [[FLT]])292; CHECK-NEXT:    ret void293;294entry:295  %0 = call double @log1p(double %dbl)296  %1 = call float @log1pf(float %flt)297  ret void298}299 300define void @test_modf(double %dbl, float %flt, ptr %pdbl, ptr %pflt) {301; CHECK-LABEL: define void @test_modf(302; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]], ptr [[PDBL:%.*]], ptr [[PFLT:%.*]]) {303; CHECK-NEXT:  [[ENTRY:.*:]]304; CHECK-NEXT:    [[TMP0:%.*]] = tail call { double, double } @__hipstdpar_modf_f64(double [[DBL]])305; CHECK-NEXT:    [[TMP1:%.*]] = extractvalue { double, double } [[TMP0]], 0306; CHECK-NEXT:    [[TMP2:%.*]] = extractvalue { double, double } [[TMP0]], 1307; CHECK-NEXT:    store double [[TMP2]], ptr [[PDBL]], align 8308; CHECK-NEXT:    [[TMP3:%.*]] = tail call { float, float } @__hipstdpar_modf_f32(float [[FLT]])309; CHECK-NEXT:    [[TMP4:%.*]] = extractvalue { float, float } [[TMP3]], 0310; CHECK-NEXT:    [[TMP5:%.*]] = extractvalue { float, float } [[TMP3]], 1311; CHECK-NEXT:    store float [[TMP5]], ptr [[PFLT]], align 4312; CHECK-NEXT:    ret void313;314entry:315  %0 = tail call { double, double } @llvm.modf.f64(double %dbl)316  %1 = extractvalue { double, double } %0, 0317  %2 = extractvalue { double, double } %0, 1318  store double %2, ptr %pdbl, align 8319  %3 = tail call { float, float } @llvm.modf.f32(float %flt)320  %4 = extractvalue { float, float } %3, 0321  %5 = extractvalue { float, float } %3, 1322  store float %5, ptr %pflt, align 4323  ret void324}325 326define void @test_pow(double %dbl) {327; CHECK-LABEL: define void @test_pow(328; CHECK-SAME: double [[DBL:%.*]]) {329; CHECK-NEXT:  [[ENTRY:.*:]]330; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_pow_f64(double [[DBL]], double [[DBL]])331; CHECK-NEXT:    ret void332;333entry:334  %0 = call double @llvm.pow.f64(double %dbl, double %dbl)335  ret void336}337 338define void @test_remainder(double %dbl, float %flt) {339; CHECK-LABEL: define void @test_remainder(340; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {341; CHECK-NEXT:  [[ENTRY:.*:]]342; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_remainder_f64(double [[DBL]], double [[DBL]])343; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_remainder_f32(float [[FLT]], float [[FLT]])344; CHECK-NEXT:    ret void345;346entry:347  %0 = call double @remainder(double %dbl, double %dbl)348  %1 = call float @remainderf(float %flt, float %flt)349  ret void350}351 352define void @test_remquo(double %dbl, float %flt, ptr %p) {353; CHECK-LABEL: define void @test_remquo(354; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]], ptr [[P:%.*]]) {355; CHECK-NEXT:  [[ENTRY:.*:]]356; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_remquo_f64(double [[DBL]], double [[DBL]], ptr [[P]])357; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_remquo_f32(float [[FLT]], float [[FLT]], ptr [[P]])358; CHECK-NEXT:    ret void359;360entry:361  %0 = call double @remquo(double %dbl, double %dbl, ptr %p)362  %1 = call float @remquof(float %flt, float %flt, ptr %p)363  ret void364}365 366define void @test_sin(double %dbl) {367; CHECK-LABEL: define void @test_sin(368; CHECK-SAME: double [[DBL:%.*]]) {369; CHECK-NEXT:  [[ENTRY:.*:]]370; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_sin_f64(double [[DBL]])371; CHECK-NEXT:    ret void372;373entry:374  %0 = call double @llvm.sin.f64(double %dbl)375  ret void376}377 378define void @test_sinh(double %dbl, float %flt) {379; CHECK-LABEL: define void @test_sinh(380; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {381; CHECK-NEXT:  [[ENTRY:.*:]]382; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_sinh_f64(double [[DBL]])383; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_sinh_f32(float [[FLT]])384; CHECK-NEXT:    ret void385;386entry:387  %0 = call double @llvm.sinh.f64(double %dbl)388  %1 = call float @llvm.sinh.f32(float %flt)389  ret void390}391 392define void @test_tan(double %dbl, float %flt) {393; CHECK-LABEL: define void @test_tan(394; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {395; CHECK-NEXT:  [[ENTRY:.*:]]396; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_tan_f64(double [[DBL]])397; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_tan_f32(float [[FLT]])398; CHECK-NEXT:    ret void399;400entry:401  %0 = call double @llvm.tan.f64(double %dbl)402  %1 = call float @llvm.tan.f32(float %flt)403  ret void404}405 406define void @test_tanh(double %dbl, float %flt) {407; CHECK-LABEL: define void @test_tanh(408; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {409; CHECK-NEXT:  [[ENTRY:.*:]]410; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_tanh_f64(double [[DBL]])411; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_tanh_f32(float [[FLT]])412; CHECK-NEXT:    ret void413;414entry:415  %0 = call double @llvm.tanh.f64(double %dbl)416  %1 = call float @llvm.tanh.f32(float %flt)417  ret void418}419 420define void @test_tgamma(double %dbl, float %flt) {421; CHECK-LABEL: define void @test_tgamma(422; CHECK-SAME: double [[DBL:%.*]], float [[FLT:%.*]]) {423; CHECK-NEXT:  [[ENTRY:.*:]]424; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_tgamma_f64(double [[DBL]])425; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_tgamma_f32(float [[FLT]])426; CHECK-NEXT:    ret void427;428entry:429  %0 = call double @tgamma(double %dbl)430  %1 = call float @tgammaf(float %flt)431  ret void432}433 434@globdbl = global double 4.200000e+01435@globflt = global float 4.200000e+01436 437define void @global_args() {438; CHECK-LABEL: define void @global_args() {439; CHECK-NEXT:  [[ENTRY:.*:]]440; CHECK-NEXT:    [[DBL:%.*]] = load double, ptr @globdbl, align 8441; CHECK-NEXT:    [[FLT:%.*]] = load float, ptr @globflt, align 4442; CHECK-NEXT:    [[TMP0:%.*]] = call double @__hipstdpar_remquo_f64(double [[DBL]], double [[DBL]], ptr @globdbl)443; CHECK-NEXT:    [[TMP1:%.*]] = call float @__hipstdpar_remquo_f32(float [[FLT]], float [[FLT]], ptr @globflt)444; CHECK-NEXT:    ret void445;446entry:447  %dbl = load double, ptr @globdbl448  %flt = load float, ptr @globflt449  %1 = call double @remquo(double %dbl, double %dbl, ptr @globdbl)450  %2 = call float @remquof(float %flt, float %flt, ptr @globflt)451  ret void452}453 454declare hidden double @remainder(double, double)455 456declare hidden float @remainderf(float, float)457 458declare hidden double @remquo(double, double, ptr)459 460declare hidden float @remquof(float, float, ptr)461 462declare hidden double @fdim(double, double)463 464declare hidden float @fdimf(float, float)465 466declare double @llvm.exp.f64(double)467 468declare float @llvm.exp.f32(float)469 470declare double @llvm.exp2.f64(double)471 472declare float @llvm.exp2.f32(float)473 474declare hidden double @expm1(double)475 476declare hidden float @expm1f(float)477 478declare double @llvm.log.f64(double)479 480declare double @llvm.log10.f64(double)481 482declare double @llvm.log2.f64(double)483 484declare hidden double @log1p(double)485 486declare hidden float @log1pf(float)487 488declare { float, float } @llvm.modf.f32(float)489 490declare { double, double } @llvm.modf.f64(double)491 492declare double @llvm.pow.f64(double, double)493 494declare hidden double @cbrt(double)495 496declare hidden float @cbrtf(float)497 498declare hidden double @hypot(double, double)499 500declare hidden float @hypotf(float, float)501 502declare double @llvm.sin.f64(double)503 504declare double @llvm.cos.f64(double)505 506declare double @llvm.tan.f64(double)507 508declare double @llvm.asin.f64(double)509 510declare double @llvm.acos.f64(double)511 512declare double @llvm.atan.f64(double)513 514declare double @llvm.atan2.f64(double, double)515 516declare double @llvm.sinh.f64(double)517 518declare double @llvm.cosh.f64(double)519 520declare double @llvm.tanh.f64(double)521 522declare hidden double @asinh(double)523 524declare hidden float @asinhf(float)525 526declare hidden double @acosh(double)527 528declare hidden float @acoshf(float)529 530declare hidden double @atanh(double)531 532declare hidden float @atanhf(float)533 534declare hidden double @erf(double)535 536declare hidden float @erff(float)537 538declare hidden double @erfc(double)539 540declare hidden float @erfcf(float)541 542declare hidden double @tgamma(double)543 544declare hidden float @tgammaf(float)545 546declare hidden double @lgamma(double)547 548declare hidden float @lgammaf(float)549