brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 3f533f1 Raw
107 lines · plain
1; RUN: opt -vector-library=MASSV -passes=inject-tli-mappings,loop-vectorize -force-vector-interleave=1 -mattr=-altivec -S < %s | FileCheck %s2 3target datalayout = "e-m:e-i64:64-n32:64"4target triple = "powerpc64le-unknown-linux-gnu"5 6declare double @cbrt(double) #07declare float @cbrtf(float) #08 9declare double @atanh(double) #010declare float @atanhf(float) #011 12; MASSV is unsupported for AltiVec.13; Check that massv entries are not generated.14define void @cbrt_f64(ptr nocapture %varray) {15; CHECK-LABEL: @cbrt_f64(16; CHECK-NOT: __cbrtd2{{.*}}<2 x double>17; CHECK: ret void18;19entry:20  br label %for.body21 22for.body:23  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]24  %tmp = trunc i64 %iv to i3225  %conv = sitofp i32 %tmp to double26  %call = tail call double @cbrt(double %conv)27  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv28  store double %call, ptr %arrayidx, align 429  %iv.next = add nuw nsw i64 %iv, 130  %exitcond = icmp eq i64 %iv.next, 100031  br i1 %exitcond, label %for.end, label %for.body32 33for.end:34  ret void35}36 37define void @cbrt_f32(ptr nocapture %varray) {38; CHECK-LABEL: @cbrt_f32(39; CHECK-NOT: __cbrtf4{{.*}}<4 x float>40; CHECK: ret void41;42entry:43  br label %for.body44 45for.body:46  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]47  %tmp = trunc i64 %iv to i3248  %conv = sitofp i32 %tmp to float49  %call = tail call float @cbrtf(float %conv)50  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv51  store float %call, ptr %arrayidx, align 452  %iv.next = add nuw nsw i64 %iv, 153  %exitcond = icmp eq i64 %iv.next, 100054  br i1 %exitcond, label %for.end, label %for.body55 56for.end:57  ret void58}59 60define void @atanh_f64(ptr nocapture %varray) {61; CHECK-LABEL: @atanh_f64(62; CHECK-NOT: __atanhd2{{.*}}<2 x double>63; CHECK: ret void64;65entry:66  br label %for.body67 68for.body:69  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]70  %tmp = trunc i64 %iv to i3271  %conv = sitofp i32 %tmp to double72  %call = tail call double @atanh(double %conv)73  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv74  store double %call, ptr %arrayidx, align 475  %iv.next = add nuw nsw i64 %iv, 176  %exitcond = icmp eq i64 %iv.next, 100077  br i1 %exitcond, label %for.end, label %for.body78 79for.end:80  ret void81}82 83define void @atanh_f32(ptr nocapture %varray) {84; CHECK-LABEL: @atanh_f32(85; CHECK-NOT: __atanhf4{{.*}}<2 x double>86; CHECK: ret void87;88entry:89  br label %for.body90 91for.body:92  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]93  %tmp = trunc i64 %iv to i3294  %conv = sitofp i32 %tmp to float95  %call = tail call float @atanhf(float %conv)96  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv97  store float %call, ptr %arrayidx, align 498  %iv.next = add nuw nsw i64 %iv, 199  %exitcond = icmp eq i64 %iv.next, 1000100  br i1 %exitcond, label %for.end, label %for.body101 102for.end:103  ret void104}105 106attributes #0 = { nounwind }107