Add simple arithmetics and %type directive for PTX
llvm-svn: 119485
diff --git a/llvm/test/CodeGen/PTX/add.ll b/llvm/test/CodeGen/PTX/add.ll
new file mode 100644
index 0000000..1259d03
--- /dev/null
+++ b/llvm/test/CodeGen/PTX/add.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -march=ptx | FileCheck %s
+
+define ptx_device i32 @t1(i32 %x, i32 %y) {
+; CHECK: add.s32 r0, r1, r2;
+ %z = add i32 %x, %y
+; CHECK: ret;
+ ret i32 %z
+}
+
+define ptx_device i32 @t2(i32 %x) {
+; CHECK: add.s32 r0, r1, 1;
+ %z = add i32 %x, 1
+; CHECK: ret;
+ ret i32 %z
+}
diff --git a/llvm/test/CodeGen/PTX/exit.ll b/llvm/test/CodeGen/PTX/exit.ll
index 1fb297c..396898b 100644
--- a/llvm/test/CodeGen/PTX/exit.ll
+++ b/llvm/test/CodeGen/PTX/exit.ll
@@ -1,6 +1,7 @@
; RUN: llc < %s -march=ptx | FileCheck %s
define ptx_kernel void @t1() {
-;CHECK: exit;
+; CHECK: exit;
+; CHECK-NOT: ret;
ret void
}
diff --git a/llvm/test/CodeGen/PTX/mov.ll b/llvm/test/CodeGen/PTX/mov.ll
index 287b846..c365e9b 100644
--- a/llvm/test/CodeGen/PTX/mov.ll
+++ b/llvm/test/CodeGen/PTX/mov.ll
@@ -1,13 +1,13 @@
; RUN: llc < %s -march=ptx | FileCheck %s
define ptx_device i32 @t1() {
-;CHECK: mov.s32 r0, 0;
-;CHECK: ret;
+; CHECK: mov.s32 r0, 0;
+; CHECK: ret;
ret i32 0
}
define ptx_device i32 @t2(i32 %x) {
-;CHECK: mov.s32 r0, r1;
-;CHECK: ret;
+; CHECK: mov.s32 r0, r1;
+; CHECK: ret;
ret i32 %x
}
diff --git a/llvm/test/CodeGen/PTX/ret.ll b/llvm/test/CodeGen/PTX/ret.ll
index c129ffe..d5037f2 100644
--- a/llvm/test/CodeGen/PTX/ret.ll
+++ b/llvm/test/CodeGen/PTX/ret.ll
@@ -1,6 +1,7 @@
; RUN: llc < %s -march=ptx | FileCheck %s
define ptx_device void @t1() {
-;CHECK: ret;
+; CHECK: ret;
+; CHECK-NOT: exit;
ret void
}
diff --git a/llvm/test/CodeGen/PTX/sub.ll b/llvm/test/CodeGen/PTX/sub.ll
new file mode 100644
index 0000000..aab3fda
--- /dev/null
+++ b/llvm/test/CodeGen/PTX/sub.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -march=ptx | FileCheck %s
+
+define ptx_device i32 @t1(i32 %x, i32 %y) {
+;CHECK: sub.s32 r0, r1, r2;
+ %z = sub i32 %x, %y
+;CHECK: ret;
+ ret i32 %z
+}
+
+define ptx_device i32 @t2(i32 %x) {
+;CHECK: add.s32 r0, r1, -1;
+ %z = sub i32 %x, 1
+;CHECK: ret;
+ ret i32 %z
+}