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