[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Transforms / LoopSimplify / pr30454.ll
blobd32ecfd69cda6c3d6ac53a98eccb01a650e0295d
1 ; RUN: opt < %s -passes='lcssa,loop-mssa(licm)' -S | FileCheck %s
2 ; PR30454
3 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4 target triple = "x86_64-unknown-linux-gnu"
6 declare i8 @bar()
8 ; Test that we preserve LCSSA form when removing edges from unreachable blocks.
9 ; CHECK-LABEL: @foo
10 define void @foo() {
11 entry:
12   br label %for.cond
14 for.cond:
15   %x = phi i8 [ undef, %entry ], [ %y, %for.latch ]
16   br i1 undef, label %for.latch, label %exit
18 ; CHECK:      unreachable.bb:
19 ; CHECK-NEXT:   unreachable
20 unreachable.bb:
21   br i1 undef, label %exit, label %for.latch
23 for.latch:
24   %y = call i8 @bar()
25   br label %for.cond
27 ; CHECK:      exit:
28 ; CHECK-NEXT:   %x.lcssa = phi i8 [ %x, %for.cond ]
29 exit:
30   %z = zext i8 %x to i32
31   ret void