[AMDGPU] Add True16 register classes.
[llvm-project.git] / llvm / test / Transforms / JumpThreading / 2011-04-02-SimplifyDeadBlock.ll
blob5db96217fb26f78b8a7e0af034ef0c4762ae8bec
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes=jump-threading < %s | FileCheck %s
3 ; PR9446
4 ; Just check that it doesn't crash
6 define void @int327() nounwind {
7 ; CHECK-LABEL: @int327(
8 ; CHECK-NEXT:  entry:
9 ; CHECK-NEXT:    unreachable
10 ; CHECK:       for.cond:
11 ; CHECK-NEXT:    [[TOBOOL3:%.*]] = icmp eq i8 undef, 0
12 ; CHECK-NEXT:    br i1 [[TOBOOL3]], label [[FOR_COND23:%.*]], label [[FOR_COND4:%.*]]
13 ; CHECK:       for.cond4:
14 ; CHECK-NEXT:    br label [[FOR_COND:%.*]]
15 ; CHECK:       for.cond23:
16 ; CHECK-NEXT:    [[CONV321:%.*]] = phi i32 [ [[CONV32:%.*]], [[FOR_BODY28:%.*]] ], [ 0, [[FOR_COND]] ], [ [[CONV321]], [[FOR_COND23]] ]
17 ; CHECK-NEXT:    [[L_266_0:%.*]] = phi i32 [ [[PHITMP:%.*]], [[FOR_BODY28]] ], [ 0, [[FOR_COND]] ], [ 0, [[FOR_COND23]] ]
18 ; CHECK-NEXT:    [[CMP26:%.*]] = icmp eq i32 [[L_266_0]], 0
19 ; CHECK-NEXT:    br i1 [[CMP26]], label [[FOR_BODY28]], label [[FOR_COND23]]
20 ; CHECK:       for.body28:
21 ; CHECK-NEXT:    [[AND:%.*]] = and i32 [[CONV321]], 1
22 ; CHECK-NEXT:    [[CONV32]] = zext i8 undef to i32
23 ; CHECK-NEXT:    [[ADD:%.*]] = add nsw i32 [[L_266_0]], 1
24 ; CHECK-NEXT:    [[PHITMP]] = and i32 [[ADD]], 255
25 ; CHECK-NEXT:    br label [[FOR_COND23]]
26 ; CHECK:       if.end43:
27 ; CHECK-NEXT:    ret void
29 entry:
30   unreachable
32 for.cond:                                         ; preds = %for.cond4
33   %tobool3 = icmp eq i8 undef, 0
34   br i1 %tobool3, label %for.cond23, label %for.cond4
36 for.cond4:                                        ; preds = %for.cond
37   br label %for.cond
39 for.cond23:                                       ; preds = %for.body28, %for.cond23, %for.cond
40   %conv321 = phi i32 [ %conv32, %for.body28 ], [ 0, %for.cond ], [ %conv321, %for.cond23 ]
41   %l_266.0 = phi i32 [ %phitmp, %for.body28 ], [ 0, %for.cond ], [ 0, %for.cond23 ]
42   %cmp26 = icmp eq i32 %l_266.0, 0
43   br i1 %cmp26, label %for.body28, label %for.cond23
45 for.body28:                                       ; preds = %for.cond23
46   %and = and i32 %conv321, 1
47   %conv32 = zext i8 undef to i32
48   %add = add nsw i32 %l_266.0, 1
49   %phitmp = and i32 %add, 255
50   br label %for.cond23
52 if.end43:                                         ; No predecessors!
53   ret void