53 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S -passes=loop-deletion < %s | FileCheck %s3 4; Make sure this does not crash due to incorrect SCEV invalidation (PR49967).5 6define void @test() {7; CHECK-LABEL: @test(8; CHECK-NEXT: entry:9; CHECK-NEXT: br label [[VECTOR_PH:%.*]]10; CHECK: vector.ph:11; CHECK-NEXT: br label [[FOR_BODY63:%.*]]12; CHECK: for.cond.cleanup62:13; CHECK-NEXT: br label [[FOR_BODY151_PREHEADER:%.*]]14; CHECK: for.body151.preheader:15; CHECK-NEXT: br label [[FOR_COND_CLEANUP150_LOOPEXIT:%.*]]16; CHECK: for.body63:17; CHECK-NEXT: [[I58_010:%.*]] = phi i16 [ 32, [[VECTOR_PH]] ]18; CHECK-NEXT: store i16 undef, ptr undef, align 119; CHECK-NEXT: [[INC89:%.*]] = add nuw nsw i16 [[I58_010]], 120; CHECK-NEXT: [[EXITCOND12_NOT:%.*]] = icmp eq i16 [[INC89]], 3321; CHECK-NEXT: br label [[FOR_COND_CLEANUP62:%.*]]22; CHECK: for.cond.cleanup150.loopexit:23; CHECK-NEXT: unreachable24;25entry:26 br label %vector.ph27 28vector.ph: ; preds = %for.cond.cleanup62, %entry29 br label %for.body6330 31for.cond.cleanup62: ; preds = %for.body6332 br i1 true, label %for.body151.preheader, label %vector.ph33 34for.body151.preheader: ; preds = %for.cond.cleanup6235 br label %for.body15136 37for.body63: ; preds = %for.body63, %vector.ph38 %i58.010 = phi i16 [ 32, %vector.ph ], [ %inc89, %for.body63 ]39 store i16 undef, ptr undef, align 140 %inc89 = add nuw nsw i16 %i58.010, 141 %exitcond12.not = icmp eq i16 %inc89, 3342 br i1 %exitcond12.not, label %for.cond.cleanup62, label %for.body6343 44for.cond.cleanup150.loopexit: ; preds = %for.body15145 unreachable46 47for.body151: ; preds = %for.body151.preheader, %for.body15148 %i146.29 = phi i16 [ %inc177, %for.body151 ], [ undef, %for.body151.preheader ]49 %inc177 = add nuw nsw i16 %i146.29, 150 %exitcond.not = icmp eq i16 %inc177, 3251 br i1 %exitcond.not, label %for.cond.cleanup150.loopexit, label %for.body15152}53