summaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/SystemZ/stackmap-args.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/SystemZ/stackmap-args.ll')
-rw-r--r--llvm/test/CodeGen/SystemZ/stackmap-args.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SystemZ/stackmap-args.ll b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
new file mode 100644
index 000000000000..4c52a33c1e64
--- /dev/null
+++ b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
@@ -0,0 +1,22 @@
+; RUN: not llc -mtriple=s390x-linux-gnu < %s 2>&1 | FileCheck %s
+; Tests error when we pass non-immediate parameters to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK: immarg operand has non-immediate parameter
+entry:
+ ; First operand should be immediate
+ %id = add i64 0, 0
+ call void (i64, i32, ...) @llvm.experimental.stackmap(i64 %id, i32 0)
+ ret void
+}
+
+define void @second_arg() {
+; CHECK: immarg operand has non-immediate parameter
+entry:
+ ; Second operand should be immediate
+ %numShadowByte = add i32 0, 0
+ call void (i64, i32, ...) @llvm.experimental.stackmap(i64 1, i32 %numShadowByte)
+ ret void
+}
+
+declare void @llvm.experimental.stackmap(i64, i32, ...)