[llvm] [CodeGen] @llvm.experimental.stackmap make operands immediate (PR #117932)
Guillaume DI FATTA via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 28 04:33:36 PST 2024
https://github.com/Atafid updated https://github.com/llvm/llvm-project/pull/117932
>From 41994bc42b5f1c8879ca1dfafcaf0bf440c12203 Mon Sep 17 00:00:00 2001
From: Guillaume DI FATTA <difatta.guillaume at gmail.com>
Date: Wed, 27 Nov 2024 23:12:52 +0100
Subject: [PATCH 1/2] Add immediate operands to llvm.experimental.stackmap
---
llvm/include/llvm/IR/Intrinsics.td | 2 +-
llvm/test/CodeGen/AArch64/stackmap-args.ll | 44 ++++++++++++++
.../CodeGen/PowerPC/ppc64-stackmap-args.ll | 58 +++++++++++++++++++
llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll | 32 ++++++++++
llvm/test/CodeGen/SystemZ/stackmap-args.ll | 44 ++++++++++++++
llvm/test/CodeGen/X86/stackmap-args.ll | 44 ++++++++++++++
6 files changed, 223 insertions(+), 1 deletion(-)
create mode 100644 llvm/test/CodeGen/AArch64/stackmap-args.ll
create mode 100644 llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
create mode 100644 llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
create mode 100644 llvm/test/CodeGen/SystemZ/stackmap-args.ll
create mode 100644 llvm/test/CodeGen/X86/stackmap-args.ll
diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td
index 1ca8c2565ab0b6..ee877349a33149 100644
--- a/llvm/include/llvm/IR/Intrinsics.td
+++ b/llvm/include/llvm/IR/Intrinsics.td
@@ -1655,7 +1655,7 @@ def int_strip_invariant_group : DefaultAttrsIntrinsic<[llvm_anyptr_ty],
//
def int_experimental_stackmap : DefaultAttrsIntrinsic<[],
[llvm_i64_ty, llvm_i32_ty, llvm_vararg_ty],
- [Throws]>;
+ [Throws, ImmArg<ArgIndex<0>>, ImmArg<ArgIndex<1>>]>;
def int_experimental_patchpoint_void : Intrinsic<[],
[llvm_i64_ty, llvm_i32_ty,
llvm_ptr_ty, llvm_i32_ty,
diff --git a/llvm/test/CodeGen/AArch64/stackmap-args.ll b/llvm/test/CodeGen/AArch64/stackmap-args.ll
new file mode 100644
index 00000000000000..0a7b3a4ab1a329
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/stackmap-args.ll
@@ -0,0 +1,44 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s
+; This test is expected to fail.
+; XFAIL:*
+
+; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK-LABEL: first_arg:
+; CHECK: // %bb.0: // %entry
+; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
+; CHECK-NEXT: mov x29, sp
+; CHECK-NEXT: .cfi_def_cfa w29, 16
+; CHECK-NEXT: .cfi_offset w30, -8
+; CHECK-NEXT: .cfi_offset w29, -16
+; CHECK-NEXT: .Ltmp0:
+; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
+; CHECK-NEXT: ret
+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-LABEL: second_arg:
+; CHECK: // %bb.0: // %entry
+; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
+; CHECK-NEXT: mov x29, sp
+; CHECK-NEXT: .cfi_def_cfa w29, 16
+; CHECK-NEXT: .cfi_offset w30, -8
+; CHECK-NEXT: .cfi_offset w29, -16
+; CHECK-NEXT: .Ltmp1:
+; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
+; CHECK-NEXT: ret
+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, ...)
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll b/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
new file mode 100644
index 00000000000000..597cc7edf16e18
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
@@ -0,0 +1,58 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -verify-machineinstrs < %s -mcpu=ppc -mtriple=powerpc64-unknown-gnu-linux | FileCheck %s
+; This test is expected to fail.
+; XFAIL:*
+
+; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK-LABEL: first_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: mflr 0
+; CHECK-NEXT: std 31, -8(1)
+; CHECK-NEXT: stdu 1, -64(1)
+; CHECK-NEXT: std 0, 80(1)
+; CHECK-NEXT: .cfi_def_cfa_offset 64
+; CHECK-NEXT: .cfi_offset r31, -8
+; CHECK-NEXT: .cfi_offset lr, 16
+; CHECK-NEXT: mr 31, 1
+; CHECK-NEXT: .cfi_def_cfa_register r31
+; CHECK-NEXT: .Ltmp0:
+; CHECK-NEXT: addi 1, 1, 64
+; CHECK-NEXT: ld 0, 16(1)
+; CHECK-NEXT: ld 31, -8(1)
+; CHECK-NEXT: mtlr 0
+; CHECK-NEXT: blr
+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-LABEL: second_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: mflr 0
+; CHECK-NEXT: std 31, -8(1)
+; CHECK-NEXT: stdu 1, -64(1)
+; CHECK-NEXT: std 0, 80(1)
+; CHECK-NEXT: .cfi_def_cfa_offset 64
+; CHECK-NEXT: .cfi_offset r31, -8
+; CHECK-NEXT: .cfi_offset lr, 16
+; CHECK-NEXT: mr 31, 1
+; CHECK-NEXT: .cfi_def_cfa_register r31
+; CHECK-NEXT: .Ltmp1:
+; CHECK-NEXT: addi 1, 1, 64
+; CHECK-NEXT: ld 0, 16(1)
+; CHECK-NEXT: ld 31, -8(1)
+; CHECK-NEXT: mtlr 0
+; CHECK-NEXT: blr
+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, ...)
diff --git a/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll b/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
new file mode 100644
index 00000000000000..1fdf56a563f121
--- /dev/null
+++ b/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
@@ -0,0 +1,32 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -mtriple=riscv64 < %s | FileCheck %s
+; This test is expected to fail.
+; XFAIL:*
+
+; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK-LABEL: first_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: .Ltmp0:
+; CHECK-NEXT: ret
+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-LABEL: second_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: .Ltmp1:
+; CHECK-NEXT: ret
+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, ...)
diff --git a/llvm/test/CodeGen/SystemZ/stackmap-args.ll b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
new file mode 100644
index 00000000000000..1b7767e15eab86
--- /dev/null
+++ b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
@@ -0,0 +1,44 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
+; This test is expected to fail.
+; XFAIL:*
+
+; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK-LABEL: first_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
+; CHECK-NEXT: .cfi_offset %r14, -48
+; CHECK-NEXT: .cfi_offset %r15, -40
+; CHECK-NEXT: aghi %r15, -160
+; CHECK-NEXT: .cfi_def_cfa_offset 320
+; CHECK-NEXT: .Ltmp0:
+; CHECK-NEXT: lmg %r14, %r15, 272(%r15)
+; CHECK-NEXT: br %r14
+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-LABEL: second_arg:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
+; CHECK-NEXT: .cfi_offset %r14, -48
+; CHECK-NEXT: .cfi_offset %r15, -40
+; CHECK-NEXT: aghi %r15, -160
+; CHECK-NEXT: .cfi_def_cfa_offset 320
+; CHECK-NEXT: .Ltmp1:
+; CHECK-NEXT: lmg %r14, %r15, 272(%r15)
+; CHECK-NEXT: br %r14
+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, ...)
diff --git a/llvm/test/CodeGen/X86/stackmap-args.ll b/llvm/test/CodeGen/X86/stackmap-args.ll
new file mode 100644
index 00000000000000..99aefeb8701f2a
--- /dev/null
+++ b/llvm/test/CodeGen/X86/stackmap-args.ll
@@ -0,0 +1,44 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s
+; This test is expected to fail.
+; XFAIL:*
+
+; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+
+define void @first_arg() {
+; CHECK-LABEL: first_arg:
+; CHECK: ## %bb.0: ## %entry
+; CHECK-NEXT: pushq %rbp
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: .cfi_offset %rbp, -16
+; CHECK-NEXT: movq %rsp, %rbp
+; CHECK-NEXT: .cfi_def_cfa_register %rbp
+; CHECK-NEXT: Ltmp0:
+; CHECK-NEXT: popq %rbp
+; CHECK-NEXT: retq
+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-LABEL: second_arg:
+; CHECK: ## %bb.0: ## %entry
+; CHECK-NEXT: pushq %rbp
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: .cfi_offset %rbp, -16
+; CHECK-NEXT: movq %rsp, %rbp
+; CHECK-NEXT: .cfi_def_cfa_register %rbp
+; CHECK-NEXT: Ltmp1:
+; CHECK-NEXT: popq %rbp
+; CHECK-NEXT: retq
+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, ...)
>From 59a4dad91fc58a14648bf000dba2fa051692a98e Mon Sep 17 00:00:00 2001
From: Guillaume DI FATTA <difatta.guillaume at gmail.com>
Date: Thu, 28 Nov 2024 13:33:23 +0100
Subject: [PATCH 2/2] updated tests cases
---
llvm/test/CodeGen/AArch64/stackmap-args.ll | 30 ++-----------
.../CodeGen/PowerPC/ppc64-stackmap-args.ll | 44 ++-----------------
llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll | 18 ++------
llvm/test/CodeGen/SystemZ/stackmap-args.ll | 30 ++-----------
llvm/test/CodeGen/X86/stackmap-args.ll | 32 +++-----------
5 files changed, 21 insertions(+), 133 deletions(-)
diff --git a/llvm/test/CodeGen/AArch64/stackmap-args.ll b/llvm/test/CodeGen/AArch64/stackmap-args.ll
index 0a7b3a4ab1a329..04a427d7e86523 100644
--- a/llvm/test/CodeGen/AArch64/stackmap-args.ll
+++ b/llvm/test/CodeGen/AArch64/stackmap-args.ll
@@ -1,21 +1,8 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s
-; This test is expected to fail.
-; XFAIL:*
-
-; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+; RUN: not llc -mtriple=arm64-linux-gnu < %s 2>&1 | FileCheck %s
+; Tests error when we pass non-immediate parameters to @llvm.experiment.stackmap
define void @first_arg() {
-; CHECK-LABEL: first_arg:
-; CHECK: // %bb.0: // %entry
-; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
-; CHECK-NEXT: mov x29, sp
-; CHECK-NEXT: .cfi_def_cfa w29, 16
-; CHECK-NEXT: .cfi_offset w30, -8
-; CHECK-NEXT: .cfi_offset w29, -16
-; CHECK-NEXT: .Ltmp0:
-; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
-; CHECK-NEXT: ret
+; CHECK: immarg operand has non-immediate parameter
entry:
; First operand should be immediate
%id = add i64 0, 0
@@ -24,16 +11,7 @@ entry:
}
define void @second_arg() {
-; CHECK-LABEL: second_arg:
-; CHECK: // %bb.0: // %entry
-; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
-; CHECK-NEXT: mov x29, sp
-; CHECK-NEXT: .cfi_def_cfa w29, 16
-; CHECK-NEXT: .cfi_offset w30, -8
-; CHECK-NEXT: .cfi_offset w29, -16
-; CHECK-NEXT: .Ltmp1:
-; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
-; CHECK-NEXT: ret
+; CHECK: immarg operand has non-immediate parameter
entry:
; Second operand should be immediate
%numShadowByte = add i32 0, 0
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll b/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
index 597cc7edf16e18..4e83db71793d6e 100644
--- a/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
+++ b/llvm/test/CodeGen/PowerPC/ppc64-stackmap-args.ll
@@ -1,28 +1,8 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc -verify-machineinstrs < %s -mcpu=ppc -mtriple=powerpc64-unknown-gnu-linux | FileCheck %s
-; This test is expected to fail.
-; XFAIL:*
-
-; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+; RUN: not llc -verify-machineinstrs -mcpu=ppc -mtriple=powerpc64-unknown-gnu-linux < %s 2>&1 | FileCheck %s
+; Tests error when we pass non-immediate parameters to @llvm.experiment.stackmap
define void @first_arg() {
-; CHECK-LABEL: first_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: mflr 0
-; CHECK-NEXT: std 31, -8(1)
-; CHECK-NEXT: stdu 1, -64(1)
-; CHECK-NEXT: std 0, 80(1)
-; CHECK-NEXT: .cfi_def_cfa_offset 64
-; CHECK-NEXT: .cfi_offset r31, -8
-; CHECK-NEXT: .cfi_offset lr, 16
-; CHECK-NEXT: mr 31, 1
-; CHECK-NEXT: .cfi_def_cfa_register r31
-; CHECK-NEXT: .Ltmp0:
-; CHECK-NEXT: addi 1, 1, 64
-; CHECK-NEXT: ld 0, 16(1)
-; CHECK-NEXT: ld 31, -8(1)
-; CHECK-NEXT: mtlr 0
-; CHECK-NEXT: blr
+; CHECK: immarg operand has non-immediate parameter
entry:
; First operand should be immediate
%id = add i64 0, 0
@@ -31,23 +11,7 @@ entry:
}
define void @second_arg() {
-; CHECK-LABEL: second_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: mflr 0
-; CHECK-NEXT: std 31, -8(1)
-; CHECK-NEXT: stdu 1, -64(1)
-; CHECK-NEXT: std 0, 80(1)
-; CHECK-NEXT: .cfi_def_cfa_offset 64
-; CHECK-NEXT: .cfi_offset r31, -8
-; CHECK-NEXT: .cfi_offset lr, 16
-; CHECK-NEXT: mr 31, 1
-; CHECK-NEXT: .cfi_def_cfa_register r31
-; CHECK-NEXT: .Ltmp1:
-; CHECK-NEXT: addi 1, 1, 64
-; CHECK-NEXT: ld 0, 16(1)
-; CHECK-NEXT: ld 31, -8(1)
-; CHECK-NEXT: mtlr 0
-; CHECK-NEXT: blr
+; CHECK: immarg operand has non-immediate parameter
entry:
; Second operand should be immediate
%numShadowByte = add i32 0, 0
diff --git a/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll b/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
index 1fdf56a563f121..9437ac02962b6c 100644
--- a/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
+++ b/llvm/test/CodeGen/RISCV/rv64-stackmap-args.ll
@@ -1,15 +1,8 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc -mtriple=riscv64 < %s | FileCheck %s
-; This test is expected to fail.
-; XFAIL:*
-
-; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+; RUN: not llc -mtriple=riscv64 < %s 2>&1 | FileCheck %s
+; Tests error when we pass non-immediate parameters to @llvm.experiment.stackmap
define void @first_arg() {
-; CHECK-LABEL: first_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: .Ltmp0:
-; CHECK-NEXT: ret
+; CHECK: immarg operand has non-immediate parameter
entry:
; First operand should be immediate
%id = add i64 0, 0
@@ -18,10 +11,7 @@ entry:
}
define void @second_arg() {
-; CHECK-LABEL: second_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: .Ltmp1:
-; CHECK-NEXT: ret
+; CHECK: immarg operand has non-immediate parameter
entry:
; Second operand should be immediate
%numShadowByte = add i32 0, 0
diff --git a/llvm/test/CodeGen/SystemZ/stackmap-args.ll b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
index 1b7767e15eab86..4c52a33c1e64ec 100644
--- a/llvm/test/CodeGen/SystemZ/stackmap-args.ll
+++ b/llvm/test/CodeGen/SystemZ/stackmap-args.ll
@@ -1,21 +1,8 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
-; This test is expected to fail.
-; XFAIL:*
-
-; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+; 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-LABEL: first_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
-; CHECK-NEXT: .cfi_offset %r14, -48
-; CHECK-NEXT: .cfi_offset %r15, -40
-; CHECK-NEXT: aghi %r15, -160
-; CHECK-NEXT: .cfi_def_cfa_offset 320
-; CHECK-NEXT: .Ltmp0:
-; CHECK-NEXT: lmg %r14, %r15, 272(%r15)
-; CHECK-NEXT: br %r14
+; CHECK: immarg operand has non-immediate parameter
entry:
; First operand should be immediate
%id = add i64 0, 0
@@ -24,16 +11,7 @@ entry:
}
define void @second_arg() {
-; CHECK-LABEL: second_arg:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: stmg %r14, %r15, 112(%r15)
-; CHECK-NEXT: .cfi_offset %r14, -48
-; CHECK-NEXT: .cfi_offset %r15, -40
-; CHECK-NEXT: aghi %r15, -160
-; CHECK-NEXT: .cfi_def_cfa_offset 320
-; CHECK-NEXT: .Ltmp1:
-; CHECK-NEXT: lmg %r14, %r15, 272(%r15)
-; CHECK-NEXT: br %r14
+; CHECK: immarg operand has non-immediate parameter
entry:
; Second operand should be immediate
%numShadowByte = add i32 0, 0
diff --git a/llvm/test/CodeGen/X86/stackmap-args.ll b/llvm/test/CodeGen/X86/stackmap-args.ll
index 99aefeb8701f2a..622c41c06fb963 100644
--- a/llvm/test/CodeGen/X86/stackmap-args.ll
+++ b/llvm/test/CodeGen/X86/stackmap-args.ll
@@ -1,21 +1,8 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s
-; This test is expected to fail.
-; XFAIL:*
-
-; Tests failure when we pass non-immediate args to @llvm.experiment.stackmap
+; RUN: not llc -mtriple=x86_64-apple-darwin -mcpu=corei7 < %s 2>&1 | FileCheck %s
+; Tests error when we pass non-immediate parameters to @llvm.experiment.stackmap
define void @first_arg() {
-; CHECK-LABEL: first_arg:
-; CHECK: ## %bb.0: ## %entry
-; CHECK-NEXT: pushq %rbp
-; CHECK-NEXT: .cfi_def_cfa_offset 16
-; CHECK-NEXT: .cfi_offset %rbp, -16
-; CHECK-NEXT: movq %rsp, %rbp
-; CHECK-NEXT: .cfi_def_cfa_register %rbp
-; CHECK-NEXT: Ltmp0:
-; CHECK-NEXT: popq %rbp
-; CHECK-NEXT: retq
+; CHECK: immarg operand has non-immediate parameter
entry:
; First operand should be immediate
%id = add i64 0, 0
@@ -24,16 +11,7 @@ entry:
}
define void @second_arg() {
-; CHECK-LABEL: second_arg:
-; CHECK: ## %bb.0: ## %entry
-; CHECK-NEXT: pushq %rbp
-; CHECK-NEXT: .cfi_def_cfa_offset 16
-; CHECK-NEXT: .cfi_offset %rbp, -16
-; CHECK-NEXT: movq %rsp, %rbp
-; CHECK-NEXT: .cfi_def_cfa_register %rbp
-; CHECK-NEXT: Ltmp1:
-; CHECK-NEXT: popq %rbp
-; CHECK-NEXT: retq
+; CHECK: immarg operand has non-immediate parameter
entry:
; Second operand should be immediate
%numShadowByte = add i32 0, 0
@@ -41,4 +19,4 @@ entry:
ret void
}
-declare void @llvm.experimental.stackmap(i64, i32, ...)
+declare void @llvm.experimental.stackmap(i64, i32, ...)
\ No newline at end of file
More information about the llvm-commits
mailing list