45 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -S < %s | FileCheck %s2 3; This test cases used to crash the scalar code generation. Check that we4; can generate code for it.5 6; CHECK: polly.start7@endposition = external global i32, align 48@Bit = external global [0 x i32], align 49@Init = external global [0 x i32], align 410 11define void @maskgen() {12entry:13 br label %for.body14 15for.body: ; preds = %for.body, %entry16 br i1 undef, label %for.end.310, label %for.body17 18for.end.310: ; preds = %for.body19 store i32 undef, ptr @endposition, align 420 %sub325 = sub i32 33, 021 %0 = load i32, ptr @Init, align 422 br i1 false, label %for.cond.347.preheader, label %for.body.328.lr.ph23 24for.body.328.lr.ph: ; preds = %for.end.31025 %1 = sub i32 34, 026 br label %for.body.32827 28for.body.328: ; preds = %for.body.328, %for.body.328.lr.ph29 %indvars.iv546 = phi i64 [ %indvars.iv.next547, %for.body.328 ], [ 1, %for.body.328.lr.ph ]30 %2 = phi i32 [ %or331, %for.body.328 ], [ %0, %for.body.328.lr.ph ]31 %arrayidx330 = getelementptr inbounds [0 x i32], ptr @Bit, i64 0, i64 %indvars.iv54632 %3 = load i32, ptr %arrayidx330, align 433 %or331 = or i32 %3, %234 %indvars.iv.next547 = add nuw nsw i64 %indvars.iv546, 135 %lftr.wideiv = trunc i64 %indvars.iv.next547 to i3236 %exitcond14 = icmp eq i32 %lftr.wideiv, %137 br i1 %exitcond14, label %for.cond.347.preheader, label %for.body.32838 39for.cond.347.preheader: ; preds = %for.cond.347.preheader, %for.body.328, %for.end.31040 br i1 undef, label %if.end.471, label %for.cond.347.preheader41 42if.end.471: ; preds = %for.cond.347.preheader43 ret void44}45