[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Analysis / MemorySSA / renamephis.ll
blob7d240d823fa2343bced2c07e7b8c8081f3306d30
1 ; RUN: opt -licm -enable-mssa-loop-dependency -verify-memoryssa -S %s | FileCheck %s
2 ; REQUIRES: asserts
3 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4 target triple = "x86_64-unknown-linux-gnu"
6 @0 = external global { { [86 x i8]*, i32, i32 }, { i16, i16, [20 x i8] }*, i8, i8 }
8 declare void @g()
10 ; Function Attrs: argmemonly nounwind willreturn
11 declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #0
13 ; CHECK-LABEL: @f
14 define void @f() align 2 {
15 entry:
16   %P = alloca i32*, align 8
17   br label %cond.end.i.i.i.i
19 cond.end.i.i.i.i:                                 ; preds = %cont20, %entry
20   br i1 undef, label %cont20, label %if.end
22 cont20:                                           ; preds = %cond.end.i.i.i.i, %cond.end.i.i.i.i, %cond.end.i.i.i.i
23   store i32* undef, i32** %P, align 8
24   br label %cond.end.i.i.i.i
26 if.end:                                           ; preds = %cond.end.i.i.i.i
27   br i1 undef, label %cond.exit, label %handler.type_mismatch2.i
29 handler.type_mismatch2.i:                         ; preds = %if.end
30   tail call void @g()
31   unreachable
33 cond.exit:             ; preds = %if.end
34   switch i8 undef, label %block.exit [
35     i8 81, label %sw.bb94
36     i8 12, label %cleanup
37     i8 74, label %cleanup
38   ]
40 block.exit: ; preds = %cond.exit
41   unreachable
43 sw.bb94:                                          ; preds = %cond.exit
44   call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull undef)
45   br label %cleanup
47 cleanup:                                          ; preds = %sw.bb94, %cond.exit, %cond.exit
48   ret void
51 attributes #0 = { argmemonly nounwind willreturn }