[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / Generic / 2006-02-12-InsertLibcall.ll
1 ; RUN: llc < %s
2 @G = external global i32                ; <i32*> [#uses=1]
3
4 define void @encode_one_frame(i64 %tmp.2i) {
5 entry:
6         %tmp.9 = icmp eq i32 0, 0               ; <i1> [#uses=1]
7         br i1 %tmp.9, label %endif.0, label %shortcirc_next.0
8
9 then.5.i:               ; preds = %shortcirc_next.i
10         %tmp.114.i = sdiv i64 %tmp.2i, 3                ; <i64> [#uses=1]
11         %tmp.111.i = call i64 @lseek( i32 0, i64 %tmp.114.i, i32 1 )            ; <i64> [#uses=0]
12         ret void
13
14 shortcirc_next.0:               ; preds = %entry
15         ret void
16
17 endif.0:                ; preds = %entry
18         %tmp.324.i = icmp eq i32 0, 0           ; <i1> [#uses=2]
19         %tmp.362.i = icmp slt i32 0, 0          ; <i1> [#uses=1]
20         br i1 %tmp.324.i, label %else.4.i, label %then.11.i37
21
22 then.11.i37:            ; preds = %endif.0
23         ret void
24
25 else.4.i:               ; preds = %endif.0
26         br i1 %tmp.362.i, label %else.5.i, label %then.12.i
27
28 then.12.i:              ; preds = %else.4.i
29         ret void
30
31 else.5.i:               ; preds = %else.4.i
32         br i1 %tmp.324.i, label %then.0.i40, label %then.17.i
33
34 then.17.i:              ; preds = %else.5.i
35         ret void
36
37 then.0.i40:             ; preds = %else.5.i
38         %tmp.8.i42 = icmp eq i32 0, 0           ; <i1> [#uses=1]
39         br i1 %tmp.8.i42, label %else.1.i56, label %then.1.i52
40
41 then.1.i52:             ; preds = %then.0.i40
42         ret void
43
44 else.1.i56:             ; preds = %then.0.i40
45         %tmp.28.i = load i32, i32* @G           ; <i32> [#uses=1]
46         %tmp.29.i = icmp eq i32 %tmp.28.i, 1            ; <i1> [#uses=1]
47         br i1 %tmp.29.i, label %shortcirc_next.i, label %shortcirc_done.i
48
49 shortcirc_next.i:               ; preds = %else.1.i56
50         %tmp.34.i = icmp eq i32 0, 3            ; <i1> [#uses=1]
51         br i1 %tmp.34.i, label %then.5.i, label %endif.5.i
52
53 shortcirc_done.i:               ; preds = %else.1.i56
54         ret void
55
56 endif.5.i:              ; preds = %shortcirc_next.i
57         ret void
58 }
59
60 declare i64 @lseek(i32, i64, i32)