| Dmitri Gribenko | b137c9e | 2012-12-30 01:28:40 +0000 | [diff] [blame] | 1 | ; RUN: opt -S -simplifycfg < %s | FileCheck %s |
| Benjamin Kramer | 27361a7 | 2011-02-24 22:46:11 +0000 | [diff] [blame] | 2 | |
| Benjamin Kramer | dfdca1a | 2011-02-24 23:26:09 +0000 | [diff] [blame] | 3 | %ST = type { i8, i8 } |
| 4 | |
| James Molloy | 7c33657 | 2015-02-11 12:15:41 +0000 | [diff] [blame] | 5 | define i8* @test1(%ST* %x, i8* %y) nounwind { |
| Benjamin Kramer | dfdca1a | 2011-02-24 23:26:09 +0000 | [diff] [blame] | 6 | entry: |
| 7 | %cmp = icmp eq %ST* %x, null |
| 8 | br i1 %cmp, label %if.then, label %if.end |
| 9 | |
| 10 | if.then: |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 11 | %incdec.ptr = getelementptr %ST, %ST* %x, i32 0, i32 1 |
| Benjamin Kramer | dfdca1a | 2011-02-24 23:26:09 +0000 | [diff] [blame] | 12 | br label %if.end |
| 13 | |
| 14 | if.end: |
| 15 | %x.addr = phi i8* [ %incdec.ptr, %if.then ], [ %y, %entry ] |
| 16 | ret i8* %x.addr |
| 17 | |
| James Molloy | 7c33657 | 2015-02-11 12:15:41 +0000 | [diff] [blame] | 18 | ; CHECK-LABEL: @test1( |
| Dan Gohman | 5ab9c0a | 2012-01-05 23:58:56 +0000 | [diff] [blame] | 19 | ; CHECK: %incdec.ptr.y = select i1 %cmp, i8* %incdec.ptr, i8* %y |
| 20 | ; CHECK: ret i8* %incdec.ptr.y |
| Benjamin Kramer | dfdca1a | 2011-02-24 23:26:09 +0000 | [diff] [blame] | 21 | } |