summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Hexagon/newvaluejump.ll
diff options
context:
space:
mode:
authorSirish Pande <spande@codeaurora.org>2012-04-23 17:49:28 +0000
committerSirish Pande <spande@codeaurora.org>2012-04-23 17:49:28 +0000
commit2c7bf00fba0c4fe7661495be69175f3fe14e405f (patch)
tree44bcc78333ec6de6f2d458e94c212f2e99b968a8 /llvm/test/CodeGen/Hexagon/newvaluejump.ll
parent6cd2251598b7835aee1df3eb04a6651b1e619947 (diff)
downloadbcm5719-llvm-2c7bf00fba0c4fe7661495be69175f3fe14e405f.tar.gz
bcm5719-llvm-2c7bf00fba0c4fe7661495be69175f3fe14e405f.zip
Support for Hexagon architectural feature, new value jump.
llvm-svn: 155366
Diffstat (limited to 'llvm/test/CodeGen/Hexagon/newvaluejump.ll')
-rw-r--r--llvm/test/CodeGen/Hexagon/newvaluejump.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/newvaluejump.ll b/llvm/test/CodeGen/Hexagon/newvaluejump.ll
new file mode 100644
index 00000000000..9c7ca55cb8f
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/newvaluejump.ll
@@ -0,0 +1,33 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+; Check that we generate new value jump.
+
+@i = global i32 0, align 4
+@j = global i32 10, align 4
+
+define i32 @foo(i32 %a) nounwind {
+entry:
+; CHECK: if (cmp.eq(r{{[0-9]+}}.new, #0)) jump{{.}}
+ %addr1 = alloca i32, align 4
+ %addr2 = alloca i32, align 4
+ %0 = load i32* @i, align 4
+ store i32 %0, i32* %addr1, align 4
+ call void @bar(i32 1, i32 2)
+ %1 = load i32* @j, align 4
+ %tobool = icmp ne i32 %1, 0
+ br i1 %tobool, label %if.then, label %if.else
+
+if.then:
+ call void @baz(i32 1, i32 2)
+ br label %if.end
+
+if.else:
+ call void @guy(i32 10, i32 20)
+ br label %if.end
+
+if.end:
+ ret i32 0
+}
+
+declare void @guy(i32, i32)
+declare void @bar(i32, i32)
+declare void @baz(i32, i32)
OpenPOWER on IntegriCloud