1 ; RUN: opt -vector-library=MASSV -loop-vectorize -force-vector-interleave=1 -S < %s | FileCheck %s
3 target datalayout = "e-m:e-i64:64-n32:64"
4 target triple = "powerpc64le-unknown-linux-gnu"
6 declare double @atanh(double) #1
7 declare float @atanhf(float) #1
9 ; Check that functions marked as nobuiltin are not lowered to massv entries.
10 define void @atanh_f64(double* nocapture %varray) {
11 ; CHECK-LABEL: @atanh_f64(
12 ; CHECK-NOT: __atanhd2_massv{{.*}}<2 x double>
19 %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
20 %tmp = trunc i64 %iv to i32
21 %conv = sitofp i32 %tmp to double
22 %call = tail call double @atanh(double %conv)
23 %arrayidx = getelementptr inbounds double, double* %varray, i64 %iv
24 store double %call, double* %arrayidx, align 4
25 %iv.next = add nuw nsw i64 %iv, 1
26 %exitcond = icmp eq i64 %iv.next, 1000
27 br i1 %exitcond, label %for.end, label %for.body
33 define void @atanh_f32(float* nocapture %varray) {
34 ; CHECK-LABEL: @atanh_f32(
35 ; CHECK-NOT: __atanhf4_massv{{.*}}<2 x double>
42 %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
43 %tmp = trunc i64 %iv to i32
44 %conv = sitofp i32 %tmp to float
45 %call = tail call float @atanhf(float %conv)
46 %arrayidx = getelementptr inbounds float, float* %varray, i64 %iv
47 store float %call, float* %arrayidx, align 4
48 %iv.next = add nuw nsw i64 %iv, 1
49 %exitcond = icmp eq i64 %iv.next, 1000
50 br i1 %exitcond, label %for.end, label %for.body
56 attributes #1 = { nobuiltin nounwind }