test-and-cmp-folding.ll
1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; RUN: llc < %s -mtriple=powerpc64le-unknown-unknown -mcpu=pwr8 \
; RUN: -verify-machineinstrs | FileCheck %s
declare void @free()
define dso_local fastcc void @test2() {
; CHECK-LABEL: test2
entry:
switch i16 undef, label %sw.default [
i16 10, label %sw.bb52
i16 134, label %sw.bb54
]
sw.default: ; preds = %entry
unreachable
sw.bb52: ; preds = %entry, %entry, %entry, %entry, %entry, %entry
br i1 undef, label %if.then14.i, label %sw.epilog.i642
if.then14.i: ; preds = %sw.bb52
%call39.i = call i64 @test() #3
%and.i126.i = and i64 %call39.i, 1
br i1 undef, label %dummy.exit.i, label %if.then.i.i.i636
if.then.i.i.i636: ; preds = %if.then14.i
%0 = load i8*, i8** undef, align 8
call void @free() #3
br label %dummy.exit.i
dummy.exit.i: ; preds = %if.then.i.i.i636, %if.then14.i
; CHECK: # %dummy.exit.i
; CHECK-NEXT: andi.
; CHECK-NEXT: bc 12
%cond82.i = icmp eq i64 %and.i126.i, 0
br i1 %cond82.i, label %if.end50.i, label %dummy.exit
if.end50.i: ; preds = %dummy.exit.i
unreachable
sw.epilog.i642: ; preds = %sw.bb52
unreachable
dummy.exit: ; preds = %dummy.exit.i
unreachable
sw.bb54: ; preds = %entry, %entry
call fastcc void @test3()
unreachable
}
declare dso_local fastcc void @test3()
declare i64 @test()