summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstSimplify/call.ll
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-09-24 17:15:14 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-09-24 17:15:14 +0000
commit4d4df0435395c006d2ab52a946d50b7e08f0696e (patch)
tree09f8567c038b80b8bc5e0ea177b9fa94efe9b974 /llvm/test/Transforms/InstSimplify/call.ll
parentdc4c1adfc7995776ce6be31a4bd452cd8e50e72c (diff)
downloadbcm5719-llvm-4d4df0435395c006d2ab52a946d50b7e08f0696e.tar.gz
bcm5719-llvm-4d4df0435395c006d2ab52a946d50b7e08f0696e.zip
MemoryBuiltins: Fix operator new bits.
We really don't want to optimize malloc return value checks away. llvm-svn: 191313
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/call.ll')
-rw-r--r--llvm/test/Transforms/InstSimplify/call.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/call.ll b/llvm/test/Transforms/InstSimplify/call.ll
index aa3b08653ad..89d42381015 100644
--- a/llvm/test/Transforms/InstSimplify/call.ll
+++ b/llvm/test/Transforms/InstSimplify/call.ll
@@ -121,3 +121,23 @@ cast.end: ; preds = %cast.notnull, %entr
}
declare noalias i8* @_Znwm(i64)
+
+define i8* @malloc_can_return_null() {
+entry:
+ %call = tail call noalias i8* @malloc(i64 8)
+ %cmp = icmp eq i8* %call, null
+ br i1 %cmp, label %cast.end, label %cast.notnull
+
+cast.notnull: ; preds = %entry
+ %add.ptr = getelementptr inbounds i8* %call, i64 4
+ br label %cast.end
+
+cast.end: ; preds = %cast.notnull, %entry
+ %cast.result = phi i8* [ %add.ptr, %cast.notnull ], [ null, %entry ]
+ ret i8* %cast.result
+
+; CHECK-LABEL: @malloc_can_return_null
+; CHECK: br i1 %cmp, label %cast.end, label %cast.notnull
+}
+
+declare noalias i8* @malloc(i64)
OpenPOWER on IntegriCloud