xref: /llvm-project/llvm/test/Transforms/IRCE/pr89959.ll (revision 22da5a6e34ed6146752b24d9156a678b50fddaef)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2; RUN: opt -passes=irce -S < %s 2>&1 | FileCheck %s
3
4; Make sure we don't crash.
5define void @pr89959() {
6; CHECK-LABEL: define void @pr89959() {
7; CHECK-NEXT:  top:
8; CHECK-NEXT:    br label [[L3:%.*]]
9; CHECK:       L3:
10; CHECK-NEXT:    [[VALUE_PHI:%.*]] = phi ptr [ null, [[TOP:%.*]] ], [ [[TMP0:%.*]], [[L13:%.*]] ]
11; CHECK-NEXT:    [[TMP0]] = getelementptr i8, ptr [[VALUE_PHI]], i64 8
12; CHECK-NEXT:    [[DOTNOT:%.*]] = icmp ule ptr [[VALUE_PHI]], null
13; CHECK-NEXT:    br i1 [[DOTNOT]], label [[L13]], label [[L15:%.*]]
14; CHECK:       L13:
15; CHECK-NEXT:    br label [[L3]]
16; CHECK:       L15:
17; CHECK-NEXT:    ret void
18;
19top:
20  br label %L3
21
22L3:
23  %value_phi = phi ptr [ null, %top ], [ %0, %L13 ]
24  %0 = getelementptr i8, ptr %value_phi, i64 8
25  %.not = icmp ule ptr %value_phi, null
26  br i1 %.not, label %L13, label %L15
27
28L13:
29  br label %L3
30
31L15:
32  ret void
33}
34