; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt < %s -passes="require" -S | FileCheck %s ; RUN: opt < %s -passes="loop(invalidate)" -S | FileCheck %s ;; Test that if we have a loop out of LCSSA in an optnone function, we do not ;; assert when we require a loop analysis. define i32 @foo() #0 { ; CHECK-LABEL: define i32 @foo( ; CHECK-SAME: ) #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: br label %[[FOR_COND:.*]] ; CHECK: [[FOR_COND]]: ; CHECK-NEXT: [[TMP0:%.*]] = add i16 0, 0 ; CHECK-NEXT: br i1 false, label %[[FOR_COND]], label %[[HANDLER_POINTER_OVERFLOW:.*]] ; CHECK: [[HANDLER_POINTER_OVERFLOW]]: ; CHECK-NEXT: [[TMP1:%.*]] = zext i16 [[TMP0]] to i32 ; CHECK-NEXT: ret i32 [[TMP1]] ; entry: br label %for.cond for.cond: %0 = add i16 0, 0 br i1 false, label %for.cond, label %handler.pointer_overflow handler.pointer_overflow: %1 = zext i16 %0 to i32 ret i32 %1 } attributes #0 = { noinline optnone }