brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 28466fb Raw
57 lines · plain
1; RUN: opt -vector-library=MASSV -passes=inject-tli-mappings,loop-vectorize -force-vector-interleave=1 -S < %s | FileCheck %s2 3target datalayout = "e-m:e-i64:64-n32:64"4target triple = "powerpc64le-unknown-linux-gnu"5 6declare double @atanh(double) #17declare float @atanhf(float) #18 9; Check that functions marked as nobuiltin are not lowered to massv entries.10define void @atanh_f64(ptr nocapture %varray) {11; CHECK-LABEL: @atanh_f64(12; CHECK-NOT: __atanhd2{{.*}}<2 x double>13; CHECK: ret void14;15entry:16  br label %for.body17 18for.body:19  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]20  %tmp = trunc i64 %iv to i3221  %conv = sitofp i32 %tmp to double22  %call = tail call double @atanh(double %conv)23  %arrayidx = getelementptr inbounds double, ptr %varray, i64 %iv24  store double %call, ptr %arrayidx, align 425  %iv.next = add nuw nsw i64 %iv, 126  %exitcond = icmp eq i64 %iv.next, 100027  br i1 %exitcond, label %for.end, label %for.body28 29for.end:30  ret void31}32 33define void @atanh_f32(ptr nocapture %varray) {34; CHECK-LABEL: @atanh_f32(35; CHECK-NOT: __atanhf4{{.*}}<2 x double>36; CHECK: ret void37;38entry:39  br label %for.body40 41for.body:42  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]43  %tmp = trunc i64 %iv to i3244  %conv = sitofp i32 %tmp to float45  %call = tail call float @atanhf(float %conv)46  %arrayidx = getelementptr inbounds float, ptr %varray, i64 %iv47  store float %call, ptr %arrayidx, align 448  %iv.next = add nuw nsw i64 %iv, 149  %exitcond = icmp eq i64 %iv.next, 100050  br i1 %exitcond, label %for.end, label %for.body51 52for.end:53  ret void54}55 56attributes #1 = { nobuiltin nounwind }57