comparison llvm/test/Transforms/IndVarSimplify/pr50506.ll @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents
children 1f2b6ac9f198
comparison
equal deleted inserted replaced
232:70dce7da266c 236:c4bab56944e8
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -indvars < %s | FileCheck %s
3
4 ; This test used to assert when expanding an addrec into a loop without
5 ; preheader.
6
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:%.*]]
23 ;
24 bb31:
25 indirectbr ptr %tgt, [label %exit, label %bb33]
26
27 exit:
28 ret void
29
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
34
35 bb40: ; preds = %bb38, %bb37
36 %tmp41 = phi i32 [ %tmp36, %bb33 ], [ %tmp39, %bb40 ]
37 %tmp39 = add i32 %tmp41, 0
38 br label %bb40
39
40 bb49: ; preds = %bb35
41 %tmp50 = add i32 %tmp34, 1
42 br label %bb33
43 }