[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / Generic / 2007-04-17-lsr-crash.ll
1 ; RUN: llc < %s
2
3 define void @foo(i32 %inTextSize) {
4 entry:
5         br label %bb236.outer
6
7 cond_next193:           ; preds = %bb236
8         %tmp211 = add i32 %inTextSize_addr.1.ph17, -2           ; <i32> [#uses=1]
9         br i1 false, label %cond_next232, label %cond_true227
10
11 cond_true227:           ; preds = %cond_next193
12         ret void
13
14 cond_next232:           ; preds = %cond_next193
15         %indvar.next49 = add i32 %indvar48, 1           ; <i32> [#uses=1]
16         br label %bb236.outer
17
18 bb236.outer:            ; preds = %cond_next232, %entry
19         %indvar48 = phi i32 [ %indvar.next49, %cond_next232 ], [ 0, %entry ]            ; <i32> [#uses=2]
20         %inTextSize_addr.1.ph17 = phi i32 [ %tmp211, %cond_next232 ], [ %inTextSize, %entry ]           ; <i32> [#uses=3]
21         %tmp.50 = sub i32 0, %indvar48          ; <i32> [#uses=1]
22         %tmp219 = icmp eq i32 %tmp.50, 0                ; <i1> [#uses=1]
23         br i1 %tmp219, label %bb236.us, label %bb236
24
25 bb236.us:               ; preds = %bb236.outer
26         %inTextSize_addr.1.us = add i32 0, %inTextSize_addr.1.ph17              ; <i32> [#uses=0]
27         ret void
28
29 bb236:          ; preds = %bb236.outer
30         %tmp238 = icmp eq i32 %inTextSize_addr.1.ph17, 0                ; <i1> [#uses=1]
31         br i1 %tmp238, label %exit, label %cond_next193
32
33 exit:           ; preds = %bb236
34         ret void
35 }