Dan Gohman | c87b40b | 2010-06-04 19:16:34 +0000 | [diff] [blame^] | 1 | ; RUN: llc -march=x86-64 < %s | FileCheck %s |
| 2 | |
| 3 | ; LSR should compute the correct starting values for this loop. Note that |
| 4 | ; it's not necessarily LSR's job to compute loop exit expressions; that's |
| 5 | ; indvars' job. |
| 6 | ; CHECK: movl $12 |
| 7 | ; CHECK: movl $42 |
| 8 | |
| 9 | define i32 @real_symmetric_eigen(i32 %n) nounwind { |
| 10 | while.body127: ; preds = %while.cond122 |
| 11 | br label %while.cond141 |
| 12 | |
| 13 | while.cond141: ; preds = %while.cond141, %while.body127 |
| 14 | %0 = phi i32 [ 7, %while.body127 ], [ %indvar.next67, %while.cond141 ] ; <i32> [#uses=3] |
| 15 | %indvar.next67 = add i32 %0, 1 ; <i32> [#uses=1] |
| 16 | %t = icmp slt i32 %indvar.next67, %n |
| 17 | br i1 %t, label %if.then171, label %while.cond141 |
| 18 | |
| 19 | if.then171: ; preds = %while.cond141 |
| 20 | %mul150 = mul i32 %0, %0 ; <i32> [#uses=1] |
| 21 | %add174 = add i32 %mul150, %0 ; <i32> [#uses=1] |
| 22 | ret i32 %add174 |
| 23 | } |