aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/Transforms/LoopSimplifyCFG/enter-through-indirectbr.ll
blob: dd524ab7d140d6ec16872f3755d6b6f835d28b4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -passes='require<domtree>,loop(loop-simplifycfg)' -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s

define void @test(ptr %addr) {
; CHECK-LABEL: define void @test(
; CHECK-SAME: ptr [[ADDR:%.*]]) {
; CHECK-NEXT:    indirectbr ptr [[ADDR]], [label %[[A:.*]], label %C]
; CHECK:       [[A]]:
; CHECK-NEXT:    br i1 true, label %[[B:.*]], label %[[C_LOOPEXIT:.*]]
; CHECK:       [[B]]:
; CHECK-NEXT:    br i1 true, label %[[A]], label %[[C_LOOPEXIT]]
; CHECK:       [[C_LOOPEXIT]]:
; CHECK-NEXT:    br label %[[C:.*]]
; CHECK:       [[C]]:
; CHECK-NEXT:    unreachable
;

  indirectbr ptr %addr, [label %A, label %C]

A:
  br i1 true, label %B, label %C

B:
  br i1 true, label %A, label %C

C:
  unreachable
}