| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -basicaa -gvn -S | FileCheck %s |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 2 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 3 | @last = external global [65 x i32*] |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 4 | |
| 5 | define i32 @NextRootMove(i32 %wtm) { |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 6 | entry: |
| Chris Lattner | a10327f | 2011-05-22 07:02:43 +0000 | [diff] [blame] | 7 | %A = alloca i32* |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 8 | %tmp17618 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4 |
| Chris Lattner | a10327f | 2011-05-22 07:02:43 +0000 | [diff] [blame] | 9 | store i32* %tmp17618, i32** %A |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 10 | ; CHECK: entry: |
| Chris Lattner | a10327f | 2011-05-22 07:02:43 +0000 | [diff] [blame] | 11 | ; CHECK-NEXT: alloca i32 |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 12 | ; CHECK-NEXT: %tmp17618 = load |
| 13 | ; CHECK-NOT: load |
| 14 | ; CHECK-NOT: phi |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 15 | br label %cond_true116 |
| 16 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 17 | cond_true116: |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 18 | br i1 false, label %cond_true128, label %cond_true145 |
| 19 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 20 | cond_true128: |
| 21 | %tmp17625 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4 |
| Chris Lattner | a10327f | 2011-05-22 07:02:43 +0000 | [diff] [blame] | 22 | store i32* %tmp17625, i32** %A |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 23 | br i1 false, label %bb98.backedge, label %return.loopexit |
| 24 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 25 | bb98.backedge: |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 26 | br label %cond_true116 |
| 27 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 28 | cond_true145: |
| 29 | %tmp17631 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4 |
| Chris Lattner | a10327f | 2011-05-22 07:02:43 +0000 | [diff] [blame] | 30 | store i32* %tmp17631, i32** %A |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 31 | br i1 false, label %bb98.backedge, label %return.loopexit |
| 32 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 33 | return.loopexit: |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 34 | br label %return |
| 35 | |
| Duncan Sands | 4581ddc | 2010-11-14 13:30:18 +0000 | [diff] [blame] | 36 | return: |
| Owen Anderson | dbf23cc | 2007-07-26 18:26:51 +0000 | [diff] [blame] | 37 | ret i32 0 |
| 38 | } |