Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / IndVarSimplify / pr50506.ll
blob075ee35a10d5ae3c483e2707752999ecd85e46b7
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes=indvars < %s | FileCheck %s
4 ; This test used to assert when expanding an addrec into a loop without
5 ; preheader.
7 define void @test(ptr %tgt) {
8 ; CHECK-LABEL: @test(
9 ; CHECK-NEXT:  bb31:
10 ; CHECK-NEXT:    indirectbr ptr [[TGT:%.*]], [label [[EXIT:%.*]], label %bb33]
11 ; CHECK:       exit:
12 ; CHECK-NEXT:    ret void
13 ; CHECK:       bb33:
14 ; CHECK-NEXT:    [[TMP34:%.*]] = phi i32 [ [[TMP50:%.*]], [[BB49:%.*]] ], [ 0, [[BB31:%.*]] ]
15 ; CHECK-NEXT:    br i1 false, label [[BB40_PREHEADER:%.*]], label [[BB49]]
16 ; CHECK:       bb40.preheader:
17 ; CHECK-NEXT:    br label [[BB40:%.*]]
18 ; CHECK:       bb40:
19 ; CHECK-NEXT:    br label [[BB40]]
20 ; CHECK:       bb49:
21 ; CHECK-NEXT:    [[TMP50]] = add i32 [[TMP34]], 1
22 ; CHECK-NEXT:    br label [[BB33:%.*]]
24 bb31:
25   indirectbr ptr %tgt, [label %exit, label %bb33]
27 exit:
28   ret void
30 bb33:                                             ; preds = %bb49, %bb31
31   %tmp34 = phi i32 [ %tmp50, %bb49 ], [ 0, %bb31 ]
32   %tmp36 = add i32 %tmp34, 1
33   br i1 false, label %bb40, label %bb49
35 bb40:                                             ; preds = %bb38, %bb37
36   %tmp41 = phi i32 [ %tmp36, %bb33 ], [ %tmp39, %bb40 ]
37   %tmp39 = add i32 %tmp41, 0
38   br label %bb40
40 bb49:                                             ; preds = %bb35
41   %tmp50 = add i32 %tmp34, 1
42   br label %bb33