Index: llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-invariant-select-bug.ll =================================================================== --- llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-invariant-select-bug.ll +++ llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-invariant-select-bug.ll @@ -1,36 +1,15 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; REQUIRES: asserts ; XFAIL: * -; RUN: opt -passes='simple-loop-unswitch' -S < %s | FileCheck %s +; RUN: opt -passes='simple-loop-unswitch' -S < %s -disable-output -; FIXME: We should not replace `true` with `false` here! +; 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 false -; ret i1 true } -; FIXME: We shouldn't unswitch this loop! +; We shouldn't unswitch this loop. define void @foo() { -; CHECK-LABEL: @foo( -; CHECK-NEXT: entry: -; CHECK-NEXT: br i1 true, label [[ENTRY_SPLIT_US:%.*]], label [[ENTRY_SPLIT:%.*]] -; CHECK: entry.split.us: -; CHECK-NEXT: br label [[HEADER_US:%.*]] -; CHECK: header.us: -; CHECK-NEXT: [[VAL_US:%.*]] = select i1 true, i1 true, i1 false -; CHECK-NEXT: br label [[EXIT_SPLIT_US:%.*]] -; CHECK: exit.split.us: -; CHECK-NEXT: br label [[EXIT:%.*]] -; CHECK: entry.split: -; CHECK-NEXT: br label [[HEADER:%.*]] -; CHECK: header: -; CHECK-NEXT: [[VAL:%.*]] = select i1 false, i1 false, i1 false -; CHECK-NEXT: br label [[HEADER]] -; CHECK: exit: -; CHECK-NEXT: ret void -; entry: br label %header