Chris Lattner | c7d7e0c | 2010-05-08 22:15:59 +0000 | [diff] [blame^] | 1 | ; RUN: opt < %s -simplifycfg -S | FileCheck %s |
Chris Lattner | f8131c9 | 2008-10-29 17:46:26 +0000 | [diff] [blame] | 2 | ; PR2967 |
| 3 | |
| 4 | target datalayout = |
| 5 | "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32" |
| 6 | target triple = "i386-pc-linux-gnu" |
| 7 | |
Chris Lattner | c7d7e0c | 2010-05-08 22:15:59 +0000 | [diff] [blame^] | 8 | define void @test1(i32 %x) nounwind { |
Chris Lattner | f8131c9 | 2008-10-29 17:46:26 +0000 | [diff] [blame] | 9 | entry: |
| 10 | %0 = icmp eq i32 %x, 0 ; <i1> [#uses=1] |
| 11 | br i1 %0, label %bb, label %return |
| 12 | |
| 13 | bb: ; preds = %entry |
Chris Lattner | c7d7e0c | 2010-05-08 22:15:59 +0000 | [diff] [blame^] | 14 | %1 = volatile load i32* null |
Chris Lattner | f8131c9 | 2008-10-29 17:46:26 +0000 | [diff] [blame] | 15 | unreachable |
Chris Lattner | c7d7e0c | 2010-05-08 22:15:59 +0000 | [diff] [blame^] | 16 | |
Chris Lattner | f8131c9 | 2008-10-29 17:46:26 +0000 | [diff] [blame] | 17 | br label %return |
| 18 | return: ; preds = %entry |
| 19 | ret void |
Chris Lattner | c7d7e0c | 2010-05-08 22:15:59 +0000 | [diff] [blame^] | 20 | ; CHECK: @test1 |
| 21 | ; CHECK: volatile load |
| 22 | } |
| 23 | |
| 24 | ; rdar://7958343 |
| 25 | define void @test2() nounwind { |
| 26 | entry: |
| 27 | store i32 4,i32* null |
| 28 | ret void |
| 29 | |
| 30 | ; CHECK: @test2 |
| 31 | ; CHECK: call void @llvm.trap |
| 32 | ; CHECK: unreachable |
Chris Lattner | f8131c9 | 2008-10-29 17:46:26 +0000 | [diff] [blame] | 33 | } |