; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -passes='simple-loop-unswitch' -S < %s | FileCheck %s ; If we try to replace uses of `true` outside of `@foo`, we'll see it here. define i1 @bar() { ; CHECK-LABEL: @bar( ; CHECK-NEXT: ret i1 true ; ret i1 true } ; We shouldn't unswitch this loop. define void @foo() { ; CHECK-LABEL: @foo( ; CHECK-NEXT: entry: ; CHECK-NEXT: br label [[HEADER:%.*]] ; CHECK: header: ; CHECK-NEXT: [[VAL:%.*]] = select i1 true, i1 true, i1 false ; CHECK-NEXT: br i1 true, label [[EXIT:%.*]], label [[HEADER]] ; CHECK: exit: ; CHECK-NEXT: ret void ; entry: br label %header header: %val = select i1 true, i1 true, i1 false br i1 %val, label %exit, label %header exit: ret void }