diff options
Diffstat (limited to 'test/Transforms/SimplifyCFG/trapping-load-unreachable.ll')
-rw-r--r-- | test/Transforms/SimplifyCFG/trapping-load-unreachable.ll | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll b/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll index 0c9cc8b..6956faa 100644 --- a/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll +++ b/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll @@ -1,19 +1,33 @@ -; RUN: opt < %s -simplifycfg -S | grep {volatile load} +; RUN: opt < %s -simplifycfg -S | FileCheck %s ; PR2967 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32" target triple = "i386-pc-linux-gnu" -define void @foo(i32 %x) nounwind { +define void @test1(i32 %x) nounwind { entry: %0 = icmp eq i32 %x, 0 ; <i1> [#uses=1] br i1 %0, label %bb, label %return bb: ; preds = %entry - %1 = volatile load i32* null ; <i32> [#uses=0] + %1 = volatile load i32* null unreachable + br label %return return: ; preds = %entry ret void +; CHECK: @test1 +; CHECK: volatile load +} + +; rdar://7958343 +define void @test2() nounwind { +entry: + store i32 4,i32* null + ret void + +; CHECK: @test2 +; CHECK: call void @llvm.trap +; CHECK: unreachable } |