brintos

brintos / llvm-project-archived public Read only

0
0
Text · 41.0 KiB · a5df232 Raw
1570 lines · plain
1; RUN: opt -vector-library=MASSV -mtriple=powerpc64le-unknown-linux-gnu -passes=inject-tli-mappings,loop-vectorize -force-vector-interleave=1 -S < %s | FileCheck %s2; RUN: opt -vector-library=MASSV -vec-extabi -mattr=+altivec -mcpu=ppc64 -mtriple=powerpc64-ibm-aix-xcoff -passes=inject-tli-mappings,loop-vectorize -force-vector-interleave=1 -S < %s | FileCheck %s3 4declare double @cbrt(double) #05declare float @cbrtf(float) #06 7declare double @pow(double, double) #08declare double @llvm.pow.f64(double, double) #09declare float @powf(float, float) #010declare float @llvm.pow.f32(float, float) #011 12declare double @sqrt(double) #013declare float @sqrtf(float) #014 15declare double @exp(double) #016declare double @llvm.exp.f64(double) #017declare float @expf(float) #018declare float @llvm.exp.f32(float) #019 20declare double @exp2(double) #021declare double @llvm.exp2.f64(double) #022declare float @exp2f(float) #023declare float @llvm.exp2.f32(float) #024 25declare double @expm1(double) #026declare float @expm1f(float) #027 28declare double @log(double) #029declare double @llvm.log.f64(double) #030declare float @logf(float) #031declare float @llvm.log.f32(float) #032 33declare double @log1p(double) #034declare float @log1pf(float) #035 36declare double @log10(double) #037declare double @llvm.log10.f64(double) #038declare float @log10f(float) #039declare float @llvm.log10.f32(float) #040 41declare double @log2(double) #042declare double @llvm.log2.f64(double) #043declare float @log2f(float) #044declare float @llvm.log2.f32(float) #045 46declare double @sin(double) #047declare double @llvm.sin.f64(double) #048declare float @sinf(float) #049declare float @llvm.sin.f32(float) #050 51declare double @cos(double) #052declare double @llvm.cos.f64(double) #053declare float @cosf(float) #054declare float @llvm.cos.f32(float) #055 56declare double @tan(double) #057declare float @tanf(float) #058 59declare double @asin(double) #060declare float @asinf(float) #061 62declare double @acos(double) #063declare float @acosf(float) #064 65declare double @atan(double) #066declare float @atanf(float) #067 68declare double @atan2(double, double) #069declare float @atan2f(float, float) #070 71declare double @sinh(double) #072declare float @sinhf(float) #073 74declare double @cosh(double) #075declare float @coshf(float) #076 77declare double @tanh(double) #078declare float @tanhf(float) #079 80declare double @asinh(double) #081declare float @asinhf(float) #082 83declare double @acosh(double) #084declare float @acoshf(float) #085 86declare double @atanh(double) #087declare float @atanhf(float) #088 89define void @cbrt_f64(ptr nocapture %varray) {90; CHECK-LABEL: @cbrt_f64(91; CHECK: __cbrtd2{{.*}}<2 x double>92; CHECK: ret void93;94entry:95  br label %for.body96 97for.body:98  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]99  %tmp = trunc i64 %iv to i32100  %conv = sitofp i32 %tmp to double101  %call = tail call double @cbrt(double %conv)102  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv103  store double %call, ptr %arrayidx, align 4104  %iv.next = add nuw nsw i64 %iv, 1105  %exitcond = icmp eq i64 %iv.next, 1000106  br i1 %exitcond, label %for.end, label %for.body107 108for.end:109  ret void110}111 112define void @cbrt_f32(ptr nocapture %varray) {113; CHECK-LABEL: @cbrt_f32(114; CHECK: __cbrtf4{{.*}}<4 x float>115; CHECK: ret void116;117entry:118  br label %for.body119 120for.body:121  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]122  %tmp = trunc i64 %iv to i32123  %conv = sitofp i32 %tmp to float124  %call = tail call float @cbrtf(float %conv)125  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv126  store float %call, ptr %arrayidx, align 4127  %iv.next = add nuw nsw i64 %iv, 1128  %exitcond = icmp eq i64 %iv.next, 1000129  br i1 %exitcond, label %for.end, label %for.body130 131for.end:132  ret void133}134 135define void @pow_f64(ptr nocapture %varray, ptr nocapture readonly %exp) {136; CHECK-LABEL: @pow_f64(137; CHECK:  __powd2{{.*}}<2 x double>138; CHECK:  ret void139;140entry:141  br label %for.body142 143for.body:144  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]145  %tmp = trunc i64 %iv to i32146  %conv = sitofp i32 %tmp to double147  %arrayidx = getelementptr inbounds double, ptr %exp, i64 %iv148  %tmp1 = load double, ptr %arrayidx, align 4149  %tmp2 = tail call double @pow(double %conv, double %tmp1)150  %arrayidx2 = getelementptr inbounds double, ptr %varray, i64 %iv151  store double %tmp2, ptr %arrayidx2, align 4152  %iv.next = add nuw nsw i64 %iv, 1153  %exitcond = icmp eq i64 %iv.next, 1000154  br i1 %exitcond, label %for.end, label %for.body155 156for.end:157  ret void158}159 160define void @pow_f64_intrinsic(ptr nocapture %varray, ptr nocapture readonly %exp) {161; CHECK-LABEL: @pow_f64_intrinsic(162; CHECK: __powd2{{.*}}<2 x double>163; CHECK: ret void164;165entry:166  br label %for.body167 168for.body:169  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]170  %tmp = trunc i64 %iv to i32171  %conv = sitofp i32 %tmp to double172  %arrayidx = getelementptr inbounds double, ptr %exp, i64 %iv173  %tmp1 = load double, ptr %arrayidx, align 4174  %tmp2 = tail call double @llvm.pow.f64(double %conv, double %tmp1)175  %arrayidx2 = getelementptr inbounds double, ptr %varray, i64 %iv176  store double %tmp2, ptr %arrayidx2, align 4177  %iv.next = add nuw nsw i64 %iv, 1178  %exitcond = icmp eq i64 %iv.next, 1000179  br i1 %exitcond, label %for.end, label %for.body180 181for.end:182  ret void183}184 185define void @pow_f32(ptr nocapture %varray, ptr nocapture readonly %exp) {186; CHECK-LABEL: @pow_f32(187; CHECK: __powf4{{.*}}<4 x float>188; CHECK: ret void189;190entry:191  br label %for.body192 193for.body:194  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]195  %tmp = trunc i64 %iv to i32196  %conv = sitofp i32 %tmp to float197  %arrayidx = getelementptr inbounds float, ptr %exp, i64 %iv198  %tmp1 = load float, ptr %arrayidx, align 4199  %tmp2 = tail call float @powf(float %conv, float %tmp1)200  %arrayidx2 = getelementptr inbounds float, ptr %varray, i64 %iv201  store float %tmp2, ptr %arrayidx2, align 4202  %iv.next = add nuw nsw i64 %iv, 1203  %exitcond = icmp eq i64 %iv.next, 1000204  br i1 %exitcond, label %for.end, label %for.body205 206for.end:207  ret void208}209 210define void @pow_f32_intrinsic(ptr nocapture %varray, ptr nocapture readonly %exp) {211; CHECK-LABEL: @pow_f32_intrinsic(212; CHECK: __powf4{{.*}}<4 x float>213; CHECK: ret void214;215entry:216  br label %for.body217 218for.body:219  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]220  %tmp = trunc i64 %iv to i32221  %conv = sitofp i32 %tmp to float222  %arrayidx = getelementptr inbounds float, ptr %exp, i64 %iv223  %tmp1 = load float, ptr %arrayidx, align 4224  %tmp2 = tail call float @llvm.pow.f32(float %conv, float %tmp1)225  %arrayidx2 = getelementptr inbounds float, ptr %varray, i64 %iv226  store float %tmp2, ptr %arrayidx2, align 4227  %iv.next = add nuw nsw i64 %iv, 1228  %exitcond = icmp eq i64 %iv.next, 1000229  br i1 %exitcond, label %for.end, label %for.body230 231for.end:232  ret void233}234 235define void @sqrt_f64(ptr nocapture %varray) {236; CHECK-LABEL: @sqrt_f64(237; CHECK-NOT: __sqrtd2{{.*}}<2 x double>238; CHECK: ret void239;240entry:241  br label %for.body242 243for.body:244  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]245  %tmp = trunc i64 %iv to i32246  %conv = sitofp i32 %tmp to double247  %call = tail call double @sqrt(double %conv)248  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv249  store double %call, ptr %arrayidx, align 4250  %iv.next = add nuw nsw i64 %iv, 1251  %exitcond = icmp eq i64 %iv.next, 1000252  br i1 %exitcond, label %for.end, label %for.body253 254for.end:255  ret void256}257 258define void @sqrt_f32(ptr nocapture %varray) {259; CHECK-LABEL: @sqrt_f32(260; CHECK-NOT: __sqrtf4{{.*}}<4 x float>261; CHECK: ret void262;263entry:264  br label %for.body265 266for.body:267  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]268  %tmp = trunc i64 %iv to i32269  %conv = sitofp i32 %tmp to float270  %call = tail call float @sqrtf(float %conv)271  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv272  store float %call, ptr %arrayidx, align 4273  %iv.next = add nuw nsw i64 %iv, 1274  %exitcond = icmp eq i64 %iv.next, 1000275  br i1 %exitcond, label %for.end, label %for.body276 277for.end:278  ret void279}280 281define void @exp_f64(ptr nocapture %varray) {282; CHECK-LABEL: @exp_f64(283; CHECK: __expd2{{.*}}<2 x double>284; CHECK: ret void285;286entry:287  br label %for.body288 289for.body:290  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]291  %tmp = trunc i64 %iv to i32292  %conv = sitofp i32 %tmp to double293  %call = tail call double @exp(double %conv)294  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv295  store double %call, ptr %arrayidx, align 4296  %iv.next = add nuw nsw i64 %iv, 1297  %exitcond = icmp eq i64 %iv.next, 1000298  br i1 %exitcond, label %for.end, label %for.body299 300for.end:301  ret void302}303 304define void @exp_f64_intrinsic(ptr nocapture %varray) {305; CHECK-LABEL: @exp_f64_intrinsic(306; CHECK: __expd2{{.*}}<2 x double>307; CHECK: ret void308;309entry:310  br label %for.body311 312for.body:313  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]314  %tmp = trunc i64 %iv to i32315  %conv = sitofp i32 %tmp to double316  %call = tail call double @llvm.exp.f64(double %conv)317  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv318  store double %call, ptr %arrayidx, align 4319  %iv.next = add nuw nsw i64 %iv, 1320  %exitcond = icmp eq i64 %iv.next, 1000321  br i1 %exitcond, label %for.end, label %for.body322 323for.end:324  ret void325}326 327define void @exp_f32(ptr nocapture %varray) {328; CHECK-LABEL: @exp_f32(329; CHECK: __expf4{{.*}}<4 x float>330; CHECK: ret void331;332entry:333  br label %for.body334 335for.body:336  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]337  %tmp = trunc i64 %iv to i32338  %conv = sitofp i32 %tmp to float339  %call = tail call float @expf(float %conv)340  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv341  store float %call, ptr %arrayidx, align 4342  %iv.next = add nuw nsw i64 %iv, 1343  %exitcond = icmp eq i64 %iv.next, 1000344  br i1 %exitcond, label %for.end, label %for.body345 346for.end:347  ret void348}349 350define void @exp_f32_intrinsic(ptr nocapture %varray) {351; CHECK-LABEL: @exp_f32_intrinsic(352; CHECK: __expf4{{.*}}<4 x float>353; CHECK: ret void354;355entry:356  br label %for.body357 358for.body:359  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]360  %tmp = trunc i64 %iv to i32361  %conv = sitofp i32 %tmp to float362  %call = tail call float @llvm.exp.f32(float %conv)363  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv364  store float %call, ptr %arrayidx, align 4365  %iv.next = add nuw nsw i64 %iv, 1366  %exitcond = icmp eq i64 %iv.next, 1000367  br i1 %exitcond, label %for.end, label %for.body368 369for.end:370  ret void371}372 373define void @exp2_f64(ptr nocapture %varray) {374; CHECK-LABEL: @exp2_f64(375; CHECK: __exp2d2{{.*}}<2 x double>376; CHECK:  ret void377;378entry:379  br label %for.body380 381for.body:382  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]383  %tmp = trunc i64 %iv to i32384  %conv = sitofp i32 %tmp to double385  %call = tail call double @exp2(double %conv)386  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv387  store double %call, ptr %arrayidx, align 4388  %iv.next = add nuw nsw i64 %iv, 1389  %exitcond = icmp eq i64 %iv.next, 1000390  br i1 %exitcond, label %for.end, label %for.body391 392for.end:393  ret void394}395 396define void @exp2_f64_intrinsic(ptr nocapture %varray) {397; CHECK-LABEL: @exp2_f64_intrinsic(398; CHECK: __exp2d2{{.*}}<2 x double>399; CHECK: ret void400;401entry:402  br label %for.body403 404for.body:405  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]406  %tmp = trunc i64 %iv to i32407  %conv = sitofp i32 %tmp to double408  %call = tail call double @llvm.exp2.f64(double %conv)409  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv410  store double %call, ptr %arrayidx, align 4411  %iv.next = add nuw nsw i64 %iv, 1412  %exitcond = icmp eq i64 %iv.next, 1000413  br i1 %exitcond, label %for.end, label %for.body414 415for.end:416  ret void417}418 419define void @exp2_f32(ptr nocapture %varray) {420; CHECK-LABEL: @exp2_f32(421; CHECK: __exp2f4{{.*}}<4 x float>422; CHECK: ret void423;424entry:425  br label %for.body426 427for.body:428  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]429  %tmp = trunc i64 %iv to i32430  %conv = sitofp i32 %tmp to float431  %call = tail call float @exp2f(float %conv)432  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv433  store float %call, ptr %arrayidx, align 4434  %iv.next = add nuw nsw i64 %iv, 1435  %exitcond = icmp eq i64 %iv.next, 1000436  br i1 %exitcond, label %for.end, label %for.body437 438for.end:439  ret void440}441 442define void @exp2_f32_intrinsic(ptr nocapture %varray) {443; CHECK-LABEL: @exp2_f32_intrinsic(444; CHECK: __exp2f4{{.*}}<4 x float>445; CHECK: ret void446;447entry:448  br label %for.body449 450for.body:451  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]452  %tmp = trunc i64 %iv to i32453  %conv = sitofp i32 %tmp to float454  %call = tail call float @llvm.exp2.f32(float %conv)455  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv456  store float %call, ptr %arrayidx, align 4457  %iv.next = add nuw nsw i64 %iv, 1458  %exitcond = icmp eq i64 %iv.next, 1000459  br i1 %exitcond, label %for.end, label %for.body460 461for.end:462  ret void463}464 465define void @expm1_f64(ptr nocapture %varray) {466; CHECK-LABEL: @expm1_f64(467; CHECK: __expm1d2{{.*}}<2 x double>468; CHECK:  ret void469;470entry:471  br label %for.body472 473for.body:474  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]475  %tmp = trunc i64 %iv to i32476  %conv = sitofp i32 %tmp to double477  %call = tail call double @expm1(double %conv)478  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv479  store double %call, ptr %arrayidx, align 4480  %iv.next = add nuw nsw i64 %iv, 1481  %exitcond = icmp eq i64 %iv.next, 1000482  br i1 %exitcond, label %for.end, label %for.body483 484for.end:485  ret void486}487 488define void @expm1_f32(ptr nocapture %varray) {489; CHECK-LABEL: @expm1_f32(490; CHECK: __expm1f4{{.*}}<4 x float>491; CHECK: ret void492;493entry:494  br label %for.body495 496for.body:497  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]498  %tmp = trunc i64 %iv to i32499  %conv = sitofp i32 %tmp to float500  %call = tail call float @expm1f(float %conv)501  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv502  store float %call, ptr %arrayidx, align 4503  %iv.next = add nuw nsw i64 %iv, 1504  %exitcond = icmp eq i64 %iv.next, 1000505  br i1 %exitcond, label %for.end, label %for.body506 507for.end:508  ret void509}510 511define void @log_f64(ptr nocapture %varray) {512; CHECK-LABEL: @log_f64(513; CHECK: __logd2{{.*}}<2 x double>514; CHECK: ret void515;516entry:517  br label %for.body518 519for.body:520  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]521  %tmp = trunc i64 %iv to i32522  %conv = sitofp i32 %tmp to double523  %call = tail call double @log(double %conv)524  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv525  store double %call, ptr %arrayidx, align 4526  %iv.next = add nuw nsw i64 %iv, 1527  %exitcond = icmp eq i64 %iv.next, 1000528  br i1 %exitcond, label %for.end, label %for.body529 530for.end:531  ret void532}533 534define void @log_f64_intrinsic(ptr nocapture %varray) {535; CHECK-LABEL: @log_f64_intrinsic(536; CHECK: __logd2{{.*}}<2 x double>537; CHECK: ret void538;539entry:540  br label %for.body541 542for.body:543  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]544  %tmp = trunc i64 %iv to i32545  %conv = sitofp i32 %tmp to double546  %call = tail call double @llvm.log.f64(double %conv)547  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv548  store double %call, ptr %arrayidx, align 4549  %iv.next = add nuw nsw i64 %iv, 1550  %exitcond = icmp eq i64 %iv.next, 1000551  br i1 %exitcond, label %for.end, label %for.body552 553for.end:554  ret void555}556 557define void @log_f32(ptr nocapture %varray) {558; CHECK-LABEL: @log_f32(559; CHECK: __logf4{{.*}}<4 x float>560; CHECK: ret void561;562entry:563  br label %for.body564 565for.body:566  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]567  %tmp = trunc i64 %iv to i32568  %conv = sitofp i32 %tmp to float569  %call = tail call float @logf(float %conv)570  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv571  store float %call, ptr %arrayidx, align 4572  %iv.next = add nuw nsw i64 %iv, 1573  %exitcond = icmp eq i64 %iv.next, 1000574  br i1 %exitcond, label %for.end, label %for.body575 576for.end:577  ret void578}579 580define void @log_f32_intrinsic(ptr nocapture %varray) {581; CHECK-LABEL: @log_f32_intrinsic(582; CHECK: __logf4{{.*}}<4 x float>583; CHECK: ret void584;585entry:586  br label %for.body587 588for.body:589  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]590  %tmp = trunc i64 %iv to i32591  %conv = sitofp i32 %tmp to float592  %call = tail call float @llvm.log.f32(float %conv)593  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv594  store float %call, ptr %arrayidx, align 4595  %iv.next = add nuw nsw i64 %iv, 1596  %exitcond = icmp eq i64 %iv.next, 1000597  br i1 %exitcond, label %for.end, label %for.body598 599for.end:600  ret void601}602 603define void @log1p_f64(ptr nocapture %varray) {604; CHECK-LABEL: @log1p_f64(605; CHECK: __log1pd2{{.*}}<2 x double>606; CHECK: ret void607;608entry:609  br label %for.body610 611for.body:612  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]613  %tmp = trunc i64 %iv to i32614  %conv = sitofp i32 %tmp to double615  %call = tail call double @log1p(double %conv)616  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv617  store double %call, ptr %arrayidx, align 4618  %iv.next = add nuw nsw i64 %iv, 1619  %exitcond = icmp eq i64 %iv.next, 1000620  br i1 %exitcond, label %for.end, label %for.body621 622for.end:623  ret void624}625 626define void @log1p_f32(ptr nocapture %varray) {627; CHECK-LABEL: @log1p_f32(628; CHECK: __log1pf4{{.*}}<4 x float>629; CHECK: ret void630;631entry:632  br label %for.body633 634for.body:635  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]636  %tmp = trunc i64 %iv to i32637  %conv = sitofp i32 %tmp to float638  %call = tail call float @log1pf(float %conv)639  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv640  store float %call, ptr %arrayidx, align 4641  %iv.next = add nuw nsw i64 %iv, 1642  %exitcond = icmp eq i64 %iv.next, 1000643  br i1 %exitcond, label %for.end, label %for.body644 645for.end:646  ret void647}648 649define void @log10_f64(ptr nocapture %varray) {650; CHECK-LABEL: @log10_f64(651; CHECK: __log10d2(<2 x double>652; CHECK: ret void653;654entry:655  br label %for.body656 657for.body:658  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]659  %tmp = trunc i64 %iv to i32660  %conv = sitofp i32 %tmp to double661  %call = tail call double @log10(double %conv)662  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv663  store double %call, ptr %arrayidx, align 4664  %iv.next = add nuw nsw i64 %iv, 1665  %exitcond = icmp eq i64 %iv.next, 1000666  br i1 %exitcond, label %for.end, label %for.body667 668for.end:669  ret void670}671 672define void @log10_f64_intrinsic(ptr nocapture %varray) {673; CHECK-LABEL: @log10_f64_intrinsic(674; CHECK: __log10d2{{.*}}<2 x double>675; CHECK: ret void676;677entry:678  br label %for.body679 680for.body:681  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]682  %tmp = trunc i64 %iv to i32683  %conv = sitofp i32 %tmp to double684  %call = tail call double @llvm.log10.f64(double %conv)685  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv686  store double %call, ptr %arrayidx, align 4687  %iv.next = add nuw nsw i64 %iv, 1688  %exitcond = icmp eq i64 %iv.next, 1000689  br i1 %exitcond, label %for.end, label %for.body690 691for.end:692  ret void693}694 695define void @log10_f32(ptr nocapture %varray) {696; CHECK-LABEL: @log10_f32(697; CHECK: __log10f4{{.*}}<4 x float>698; CHECK: ret void699;700entry:701  br label %for.body702 703for.body:704  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]705  %tmp = trunc i64 %iv to i32706  %conv = sitofp i32 %tmp to float707  %call = tail call float @log10f(float %conv)708  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv709  store float %call, ptr %arrayidx, align 4710  %iv.next = add nuw nsw i64 %iv, 1711  %exitcond = icmp eq i64 %iv.next, 1000712  br i1 %exitcond, label %for.end, label %for.body713 714for.end:715  ret void716}717 718define void @log10_f32_intrinsic(ptr nocapture %varray) {719; CHECK-LABEL: @log10_f32_intrinsic(720; CHECK: __log10f4{{.*}}<4 x float>721; CHECK: ret void722;723entry:724  br label %for.body725 726for.body:727  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]728  %tmp = trunc i64 %iv to i32729  %conv = sitofp i32 %tmp to float730  %call = tail call float @llvm.log10.f32(float %conv)731  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv732  store float %call, ptr %arrayidx, align 4733  %iv.next = add nuw nsw i64 %iv, 1734  %exitcond = icmp eq i64 %iv.next, 1000735  br i1 %exitcond, label %for.end, label %for.body736 737for.end:738  ret void739}740 741define void @log2_f64(ptr nocapture %varray) {742; CHECK-LABEL: @log2_f64(743; CHECK: __log2d2(<2 x double>744; CHECK: ret void745;746entry:747  br label %for.body748 749for.body:750  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]751  %tmp = trunc i64 %iv to i32752  %conv = sitofp i32 %tmp to double753  %call = tail call double @log2(double %conv)754  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv755  store double %call, ptr %arrayidx, align 4756  %iv.next = add nuw nsw i64 %iv, 1757  %exitcond = icmp eq i64 %iv.next, 1000758  br i1 %exitcond, label %for.end, label %for.body759 760for.end:761  ret void762}763 764define void @log2_f64_intrinsic(ptr nocapture %varray) {765; CHECK-LABEL: @log2_f64_intrinsic(766; CHECK: __log2d2{{.*}}<2 x double>767; CHECK: ret void768;769entry:770  br label %for.body771 772for.body:773  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]774  %tmp = trunc i64 %iv to i32775  %conv = sitofp i32 %tmp to double776  %call = tail call double @llvm.log2.f64(double %conv)777  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv778  store double %call, ptr %arrayidx, align 4779  %iv.next = add nuw nsw i64 %iv, 1780  %exitcond = icmp eq i64 %iv.next, 1000781  br i1 %exitcond, label %for.end, label %for.body782 783for.end:784  ret void785}786 787define void @log2_f32(ptr nocapture %varray) {788; CHECK-LABEL: @log2_f32(789; CHECK: __log2f4{{.*}}<4 x float>790; CHECK: ret void791;792entry:793  br label %for.body794 795for.body:796  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]797  %tmp = trunc i64 %iv to i32798  %conv = sitofp i32 %tmp to float799  %call = tail call float @log2f(float %conv)800  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv801  store float %call, ptr %arrayidx, align 4802  %iv.next = add nuw nsw i64 %iv, 1803  %exitcond = icmp eq i64 %iv.next, 1000804  br i1 %exitcond, label %for.end, label %for.body805 806for.end:807  ret void808}809 810define void @log2_f32_intrinsic(ptr nocapture %varray) {811; CHECK-LABEL: @log2_f32_intrinsic(812; CHECK: __log2f4{{.*}}<4 x float>813; CHECK: ret void814;815entry:816  br label %for.body817 818for.body:819  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]820  %tmp = trunc i64 %iv to i32821  %conv = sitofp i32 %tmp to float822  %call = tail call float @llvm.log2.f32(float %conv)823  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv824  store float %call, ptr %arrayidx, align 4825  %iv.next = add nuw nsw i64 %iv, 1826  %exitcond = icmp eq i64 %iv.next, 1000827  br i1 %exitcond, label %for.end, label %for.body828 829for.end:830  ret void831}832 833define void @sin_f64(ptr nocapture %varray) {834; CHECK-LABEL: @sin_f64(835; CHECK: __sind2{{.*}}<2 x double>836; CHECK: ret void837;838entry:839  br label %for.body840 841for.body:842  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]843  %tmp = trunc i64 %iv to i32844  %conv = sitofp i32 %tmp to double845  %call = tail call double @sin(double %conv)846  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv847  store double %call, ptr %arrayidx, align 4848  %iv.next = add nuw nsw i64 %iv, 1849  %exitcond = icmp eq i64 %iv.next, 1000850  br i1 %exitcond, label %for.end, label %for.body851 852for.end:853  ret void854}855 856define void @sin_f64_intrinsic(ptr nocapture %varray) {857; CHECK-LABEL: @sin_f64_intrinsic(858; CHECK: __sind2{{.*}}<2 x double>859; CHECK: ret void860;861entry:862  br label %for.body863 864for.body:865  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]866  %tmp = trunc i64 %iv to i32867  %conv = sitofp i32 %tmp to double868  %call = tail call double @llvm.sin.f64(double %conv)869  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv870  store double %call, ptr %arrayidx, align 4871  %iv.next = add nuw nsw i64 %iv, 1872  %exitcond = icmp eq i64 %iv.next, 1000873  br i1 %exitcond, label %for.end, label %for.body874 875for.end:876  ret void877}878 879define void @sin_f32(ptr nocapture %varray) {880; CHECK-LABEL: @sin_f32(881; CHECK: __sinf4{{.*}}<4 x float>882; CHECK: ret void883;884entry:885  br label %for.body886 887for.body:888  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]889  %tmp = trunc i64 %iv to i32890  %conv = sitofp i32 %tmp to float891  %call = tail call float @sinf(float %conv)892  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv893  store float %call, ptr %arrayidx, align 4894  %iv.next = add nuw nsw i64 %iv, 1895  %exitcond = icmp eq i64 %iv.next, 1000896  br i1 %exitcond, label %for.end, label %for.body897 898for.end:899  ret void900}901 902define void @sin_f32_intrinsic(ptr nocapture %varray) {903; CHECK-LABEL: @sin_f32_intrinsic(904; CHECK: __sinf4{{.*}}<4 x float>905; CHECK: ret void906;907entry:908  br label %for.body909 910for.body:911  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]912  %tmp = trunc i64 %iv to i32913  %conv = sitofp i32 %tmp to float914  %call = tail call float @llvm.sin.f32(float %conv)915  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv916  store float %call, ptr %arrayidx, align 4917  %iv.next = add nuw nsw i64 %iv, 1918  %exitcond = icmp eq i64 %iv.next, 1000919  br i1 %exitcond, label %for.end, label %for.body920 921for.end:922  ret void923}924 925define void @cos_f64(ptr nocapture %varray) {926; CHECK-LABEL: @cos_f64(927; CHECK: __cosd2{{.*}}<2 x double>928; CHECK: ret void929;930entry:931  br label %for.body932 933for.body:934  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]935  %tmp = trunc i64 %iv to i32936  %conv = sitofp i32 %tmp to double937  %call = tail call double @cos(double %conv)938  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv939  store double %call, ptr %arrayidx, align 4940  %iv.next = add nuw nsw i64 %iv, 1941  %exitcond = icmp eq i64 %iv.next, 1000942  br i1 %exitcond, label %for.end, label %for.body943 944for.end:945  ret void946}947 948define void @cos_f64_intrinsic(ptr nocapture %varray) {949; CHECK-LABEL: @cos_f64_intrinsic(950; CHECK:    [[TMP5:%.*]] = call <2 x double> @__cosd2(<2 x double> [[TMP4:%.*]])951; CHECK:    ret void952;953entry:954  br label %for.body955 956for.body:957  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]958  %tmp = trunc i64 %iv to i32959  %conv = sitofp i32 %tmp to double960  %call = tail call double @llvm.cos.f64(double %conv)961  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv962  store double %call, ptr %arrayidx, align 4963  %iv.next = add nuw nsw i64 %iv, 1964  %exitcond = icmp eq i64 %iv.next, 1000965  br i1 %exitcond, label %for.end, label %for.body966 967for.end:968  ret void969}970 971define void @cos_f32(ptr nocapture %varray) {972; CHECK-LABEL: @cos_f32(973; CHECK: __cosf4{{.*}}<4 x float>974; CHECK: ret void975;976entry:977  br label %for.body978 979for.body:980  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]981  %tmp = trunc i64 %iv to i32982  %conv = sitofp i32 %tmp to float983  %call = tail call float @cosf(float %conv)984  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv985  store float %call, ptr %arrayidx, align 4986  %iv.next = add nuw nsw i64 %iv, 1987  %exitcond = icmp eq i64 %iv.next, 1000988  br i1 %exitcond, label %for.end, label %for.body989 990for.end:991  ret void992}993 994define void @cos_f32_intrinsic(ptr nocapture %varray) {995; CHECK-LABEL: @cos_f32_intrinsic(996; CHECK: __cosf4{{.*}}<4 x float>997; CHECK: ret void998;999entry:1000  br label %for.body1001 1002for.body:1003  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1004  %tmp = trunc i64 %iv to i321005  %conv = sitofp i32 %tmp to float1006  %call = tail call float @llvm.cos.f32(float %conv)1007  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1008  store float %call, ptr %arrayidx, align 41009  %iv.next = add nuw nsw i64 %iv, 11010  %exitcond = icmp eq i64 %iv.next, 10001011  br i1 %exitcond, label %for.end, label %for.body1012 1013for.end:1014  ret void1015}1016 1017define void @tan_f64(ptr nocapture %varray) {1018; CHECK-LABEL: @tan_f64(1019; CHECK: __tand2{{.*}}<2 x double>1020; CHECK: ret void1021;1022entry:1023  br label %for.body1024 1025for.body:1026  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1027  %tmp = trunc i64 %iv to i321028  %conv = sitofp i32 %tmp to double1029  %call = tail call double @tan(double %conv)1030  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1031  store double %call, ptr %arrayidx, align 41032  %iv.next = add nuw nsw i64 %iv, 11033  %exitcond = icmp eq i64 %iv.next, 10001034  br i1 %exitcond, label %for.end, label %for.body1035 1036for.end:1037  ret void1038}1039 1040define void @tan_f32(ptr nocapture %varray) {1041; CHECK-LABEL: @tan_f32(1042; CHECK: __tanf4{{.*}}<4 x float>1043; CHECK: ret void1044;1045entry:1046  br label %for.body1047 1048for.body:1049  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1050  %tmp = trunc i64 %iv to i321051  %conv = sitofp i32 %tmp to float1052  %call = tail call float @tanf(float %conv)1053  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1054  store float %call, ptr %arrayidx, align 41055  %iv.next = add nuw nsw i64 %iv, 11056  %exitcond = icmp eq i64 %iv.next, 10001057  br i1 %exitcond, label %for.end, label %for.body1058 1059for.end:1060  ret void1061}1062 1063define void @asin_f64(ptr nocapture %varray) {1064; CHECK-LABEL: @asin_f64(1065; CHECK: __asind2{{.*}}<2 x double>1066; CHECK: ret void1067;1068entry:1069  br label %for.body1070 1071for.body:1072  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1073  %tmp = trunc i64 %iv to i321074  %conv = sitofp i32 %tmp to double1075  %call = tail call double @asin(double %conv)1076  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1077  store double %call, ptr %arrayidx, align 41078  %iv.next = add nuw nsw i64 %iv, 11079  %exitcond = icmp eq i64 %iv.next, 10001080  br i1 %exitcond, label %for.end, label %for.body1081 1082for.end:1083  ret void1084}1085 1086define void @asin_f32(ptr nocapture %varray) {1087; CHECK-LABEL: @asin_f32(1088; CHECK: __asinf4{{.*}}<4 x float>1089; CHECK: ret void1090;1091entry:1092  br label %for.body1093 1094for.body:1095  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1096  %tmp = trunc i64 %iv to i321097  %conv = sitofp i32 %tmp to float1098  %call = tail call float @asinf(float %conv)1099  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1100  store float %call, ptr %arrayidx, align 41101  %iv.next = add nuw nsw i64 %iv, 11102  %exitcond = icmp eq i64 %iv.next, 10001103  br i1 %exitcond, label %for.end, label %for.body1104 1105for.end:1106  ret void1107}1108 1109define void @acos_f64(ptr nocapture %varray) {1110; CHECK-LABEL: @acos_f64(1111; CHECK: __acosd2{{.*}}<2 x double>1112; CHECK: ret void1113;1114entry:1115  br label %for.body1116 1117for.body:1118  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1119  %tmp = trunc i64 %iv to i321120  %conv = sitofp i32 %tmp to double1121  %call = tail call double @acos(double %conv)1122  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1123  store double %call, ptr %arrayidx, align 41124  %iv.next = add nuw nsw i64 %iv, 11125  %exitcond = icmp eq i64 %iv.next, 10001126  br i1 %exitcond, label %for.end, label %for.body1127 1128for.end:1129  ret void1130}1131 1132define void @acos_f32(ptr nocapture %varray) {1133; CHECK-LABEL: @acos_f32(1134; CHECK: __acosf4{{.*}}<4 x float>1135; CHECK: ret void1136;1137entry:1138  br label %for.body1139 1140for.body:1141  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1142  %tmp = trunc i64 %iv to i321143  %conv = sitofp i32 %tmp to float1144  %call = tail call float @acosf(float %conv)1145  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1146  store float %call, ptr %arrayidx, align 41147  %iv.next = add nuw nsw i64 %iv, 11148  %exitcond = icmp eq i64 %iv.next, 10001149  br i1 %exitcond, label %for.end, label %for.body1150 1151for.end:1152  ret void1153}1154 1155define void @atan_f64(ptr nocapture %varray) {1156; CHECK-LABEL: @atan_f64(1157; CHECK: __atand2{{.*}}<2 x double>1158; CHECK: ret void1159;1160entry:1161  br label %for.body1162 1163for.body:1164  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1165  %tmp = trunc i64 %iv to i321166  %conv = sitofp i32 %tmp to double1167  %call = tail call double @atan(double %conv)1168  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1169  store double %call, ptr %arrayidx, align 41170  %iv.next = add nuw nsw i64 %iv, 11171  %exitcond = icmp eq i64 %iv.next, 10001172  br i1 %exitcond, label %for.end, label %for.body1173 1174for.end:1175  ret void1176}1177 1178define void @atan_f32(ptr nocapture %varray) {1179; CHECK-LABEL: @atan_f32(1180; CHECK: __atanf4{{.*}}<4 x float>1181; CHECK: ret void1182;1183entry:1184  br label %for.body1185 1186for.body:1187  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1188  %tmp = trunc i64 %iv to i321189  %conv = sitofp i32 %tmp to float1190  %call = tail call float @atanf(float %conv)1191  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1192  store float %call, ptr %arrayidx, align 41193  %iv.next = add nuw nsw i64 %iv, 11194  %exitcond = icmp eq i64 %iv.next, 10001195  br i1 %exitcond, label %for.end, label %for.body1196 1197for.end:1198  ret void1199}1200 1201define void @atan2_f64(ptr nocapture %varray) {1202; CHECK-LABEL: @atan2_f64(1203; CHECK: __atan2d2{{.*}}<2 x double>1204; CHECK: ret void1205;1206entry:1207  br label %for.body1208 1209for.body:1210  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1211  %tmp = trunc i64 %iv to i321212  %conv = sitofp i32 %tmp to double1213  %call = tail call double @atan2(double %conv, double %conv)1214  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1215  store double %call, ptr %arrayidx, align 41216  %iv.next = add nuw nsw i64 %iv, 11217  %exitcond = icmp eq i64 %iv.next, 10001218  br i1 %exitcond, label %for.end, label %for.body1219 1220for.end:1221  ret void1222}1223 1224define void @atan2_f32(ptr nocapture %varray) {1225; CHECK-LABEL: @atan2_f32(1226; CHECK: __atan2f4{{.*}}<4 x float>1227; CHECK: ret void1228;1229entry:1230  br label %for.body1231 1232for.body:1233  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1234  %tmp = trunc i64 %iv to i321235  %conv = sitofp i32 %tmp to float1236  %call = tail call float @atan2f(float %conv, float %conv)1237  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1238  store float %call, ptr %arrayidx, align 41239  %iv.next = add nuw nsw i64 %iv, 11240  %exitcond = icmp eq i64 %iv.next, 10001241  br i1 %exitcond, label %for.end, label %for.body1242 1243for.end:1244  ret void1245}1246 1247define void @atan2_f64_intrinsic(ptr nocapture %varray) {1248; CHECK-LABEL: @atan2_f64_intrinsic(1249; CHECK: __atan2d2{{.*}}<2 x double>1250; CHECK: ret void1251;1252entry:1253  br label %for.body1254 1255for.body:1256  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1257  %tmp = trunc i64 %iv to i321258  %conv = sitofp i32 %tmp to double1259  %call = tail call double @llvm.atan2.f64(double %conv, double %conv)1260  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1261  store double %call, ptr %arrayidx, align 41262  %iv.next = add nuw nsw i64 %iv, 11263  %exitcond = icmp eq i64 %iv.next, 10001264  br i1 %exitcond, label %for.end, label %for.body1265 1266for.end:1267  ret void1268}1269 1270define void @atan2_f32_intrinsic(ptr nocapture %varray) {1271; CHECK-LABEL: @atan2_f32_intrinsic(1272; CHECK: __atan2f4{{.*}}<4 x float>1273; CHECK: ret void1274;1275entry:1276  br label %for.body1277 1278for.body:1279  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1280  %tmp = trunc i64 %iv to i321281  %conv = sitofp i32 %tmp to float1282  %call = tail call float @llvm.atan2.f32(float %conv, float %conv)1283  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1284  store float %call, ptr %arrayidx, align 41285  %iv.next = add nuw nsw i64 %iv, 11286  %exitcond = icmp eq i64 %iv.next, 10001287  br i1 %exitcond, label %for.end, label %for.body1288 1289for.end:1290  ret void1291}1292 1293define void @sinh_f64(ptr nocapture %varray) {1294; CHECK-LABEL: @sinh_f64(1295; CHECK: __sinhd2{{.*}}<2 x double>1296; CHECK: ret void1297;1298entry:1299  br label %for.body1300 1301for.body:1302  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1303  %tmp = trunc i64 %iv to i321304  %conv = sitofp i32 %tmp to double1305  %call = tail call double @sinh(double %conv)1306  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1307  store double %call, ptr %arrayidx, align 41308  %iv.next = add nuw nsw i64 %iv, 11309  %exitcond = icmp eq i64 %iv.next, 10001310  br i1 %exitcond, label %for.end, label %for.body1311 1312for.end:1313  ret void1314}1315 1316define void @sinh_f32(ptr nocapture %varray) {1317; CHECK-LABEL: @sinh_f32(1318; CHECK: __sinhf4{{.*}}<4 x float>1319; CHECK: ret void1320;1321entry:1322  br label %for.body1323 1324for.body:1325  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1326  %tmp = trunc i64 %iv to i321327  %conv = sitofp i32 %tmp to float1328  %call = tail call float @sinhf(float %conv)1329  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1330  store float %call, ptr %arrayidx, align 41331  %iv.next = add nuw nsw i64 %iv, 11332  %exitcond = icmp eq i64 %iv.next, 10001333  br i1 %exitcond, label %for.end, label %for.body1334 1335for.end:1336  ret void1337}1338 1339define void @cosh_f64(ptr nocapture %varray) {1340; CHECK-LABEL: @cosh_f64(1341; CHECK: __coshd2{{.*}}<2 x double>1342; CHECK: ret void1343;1344entry:1345  br label %for.body1346 1347for.body:1348  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1349  %tmp = trunc i64 %iv to i321350  %conv = sitofp i32 %tmp to double1351  %call = tail call double @cosh(double %conv)1352  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1353  store double %call, ptr %arrayidx, align 41354  %iv.next = add nuw nsw i64 %iv, 11355  %exitcond = icmp eq i64 %iv.next, 10001356  br i1 %exitcond, label %for.end, label %for.body1357 1358for.end:1359  ret void1360}1361 1362define void @cosh_f32(ptr nocapture %varray) {1363; CHECK-LABEL: @cosh_f32(1364; CHECK: __coshf4{{.*}}<4 x float>1365; CHECK: ret void1366;1367entry:1368  br label %for.body1369 1370for.body:1371  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1372  %tmp = trunc i64 %iv to i321373  %conv = sitofp i32 %tmp to float1374  %call = tail call float @coshf(float %conv)1375  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1376  store float %call, ptr %arrayidx, align 41377  %iv.next = add nuw nsw i64 %iv, 11378  %exitcond = icmp eq i64 %iv.next, 10001379  br i1 %exitcond, label %for.end, label %for.body1380 1381for.end:1382  ret void1383}1384 1385define void @tanh_f64(ptr nocapture %varray) {1386; CHECK-LABEL: @tanh_f64(1387; CHECK: __tanhd2{{.*}}<2 x double>1388; CHECK: ret void1389;1390entry:1391  br label %for.body1392 1393for.body:1394  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1395  %tmp = trunc i64 %iv to i321396  %conv = sitofp i32 %tmp to double1397  %call = tail call double @tanh(double %conv)1398  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1399  store double %call, ptr %arrayidx, align 41400  %iv.next = add nuw nsw i64 %iv, 11401  %exitcond = icmp eq i64 %iv.next, 10001402  br i1 %exitcond, label %for.end, label %for.body1403 1404for.end:1405  ret void1406}1407 1408define void @tanh_f32(ptr nocapture %varray) {1409; CHECK-LABEL: @tanh_f32(1410; CHECK: __tanhf4{{.*}}<4 x float>1411; CHECK: ret void1412;1413entry:1414  br label %for.body1415 1416for.body:1417  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1418  %tmp = trunc i64 %iv to i321419  %conv = sitofp i32 %tmp to float1420  %call = tail call float @tanhf(float %conv)1421  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1422  store float %call, ptr %arrayidx, align 41423  %iv.next = add nuw nsw i64 %iv, 11424  %exitcond = icmp eq i64 %iv.next, 10001425  br i1 %exitcond, label %for.end, label %for.body1426 1427for.end:1428  ret void1429}1430 1431define void @asinh_f64(ptr nocapture %varray) {1432; CHECK-LABEL: @asinh_f64(1433; CHECK: __asinhd2{{.*}}<2 x double>1434; CHECK: ret void1435;1436entry:1437  br label %for.body1438 1439for.body:1440  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1441  %tmp = trunc i64 %iv to i321442  %conv = sitofp i32 %tmp to double1443  %call = tail call double @asinh(double %conv)1444  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1445  store double %call, ptr %arrayidx, align 41446  %iv.next = add nuw nsw i64 %iv, 11447  %exitcond = icmp eq i64 %iv.next, 10001448  br i1 %exitcond, label %for.end, label %for.body1449 1450for.end:1451  ret void1452}1453 1454define void @asinh_f32(ptr nocapture %varray) {1455; CHECK-LABEL: @asinh_f32(1456; CHECK: __asinhf4{{.*}}<4 x float>1457; CHECK: ret void1458;1459entry:1460  br label %for.body1461 1462for.body:1463  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1464  %tmp = trunc i64 %iv to i321465  %conv = sitofp i32 %tmp to float1466  %call = tail call float @asinhf(float %conv)1467  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1468  store float %call, ptr %arrayidx, align 41469  %iv.next = add nuw nsw i64 %iv, 11470  %exitcond = icmp eq i64 %iv.next, 10001471  br i1 %exitcond, label %for.end, label %for.body1472 1473for.end:1474  ret void1475}1476 1477define void @acosh_f64(ptr nocapture %varray) {1478; CHECK-LABEL: @acosh_f64(1479; CHECK: __acoshd2{{.*}}<2 x double>1480; CHECK: ret void1481;1482entry:1483  br label %for.body1484 1485for.body:1486  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1487  %tmp = trunc i64 %iv to i321488  %conv = sitofp i32 %tmp to double1489  %call = tail call double @acosh(double %conv)1490  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1491  store double %call, ptr %arrayidx, align 41492  %iv.next = add nuw nsw i64 %iv, 11493  %exitcond = icmp eq i64 %iv.next, 10001494  br i1 %exitcond, label %for.end, label %for.body1495 1496for.end:1497  ret void1498}1499 1500define void @acosh_f32(ptr nocapture %varray) {1501; CHECK-LABEL: @acosh_f32(1502; CHECK: __acoshf4{{.*}}<4 x float>1503; CHECK: ret void1504;1505entry:1506  br label %for.body1507 1508for.body:1509  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1510  %tmp = trunc i64 %iv to i321511  %conv = sitofp i32 %tmp to float1512  %call = tail call float @acoshf(float %conv)1513  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1514  store float %call, ptr %arrayidx, align 41515  %iv.next = add nuw nsw i64 %iv, 11516  %exitcond = icmp eq i64 %iv.next, 10001517  br i1 %exitcond, label %for.end, label %for.body1518 1519for.end:1520  ret void1521}1522 1523define void @atanh_f64(ptr nocapture %varray) {1524; CHECK-LABEL: @atanh_f64(1525; CHECK: __atanhd2{{.*}}<2 x double>1526; CHECK: ret void1527;1528entry:1529  br label %for.body1530 1531for.body:1532  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1533  %tmp = trunc i64 %iv to i321534  %conv = sitofp i32 %tmp to double1535  %call = tail call double @atanh(double %conv)1536  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv1537  store double %call, ptr %arrayidx, align 41538  %iv.next = add nuw nsw i64 %iv, 11539  %exitcond = icmp eq i64 %iv.next, 10001540  br i1 %exitcond, label %for.end, label %for.body1541 1542for.end:1543  ret void1544}1545 1546define void @atanh_f32(ptr nocapture %varray) {1547; CHECK-LABEL: @atanh_f32(1548; CHECK: __atanhf4{{.*}}<4 x float>1549; CHECK: ret void1550;1551entry:1552  br label %for.body1553 1554for.body:1555  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]1556  %tmp = trunc i64 %iv to i321557  %conv = sitofp i32 %tmp to float1558  %call = tail call float @atanhf(float %conv)1559  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv1560  store float %call, ptr %arrayidx, align 41561  %iv.next = add nuw nsw i64 %iv, 11562  %exitcond = icmp eq i64 %iv.next, 10001563  br i1 %exitcond, label %for.end, label %for.body1564 1565for.end:1566  ret void1567}1568 1569attributes #0 = { nounwind }1570