[llvm-branch-commits] [llvm] llvm-reduce: Add test for token handling in operands-skip (PR #133857)
Matt Arsenault via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Mar 31 21:51:05 PDT 2025
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/133857
Seems to work correctly but wasn't tested.
>From 4182da49f37add4eff4c2e3acd32a609ef985338 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Tue, 1 Apr 2025 11:48:22 +0700
Subject: [PATCH] llvm-reduce: Add test for token handling in operands-skip
Seems to work correctly but wasn't tested.
---
.../llvm-reduce/reduce-operands-skip-token.ll | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll
diff --git a/llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll b/llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll
new file mode 100644
index 0000000000000..1202974333b5b
--- /dev/null
+++ b/llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll
@@ -0,0 +1,27 @@
+; Check token values are correctly handled by operands-skip
+
+; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-skip --test FileCheck --test-arg --check-prefix=INTERESTING --test-arg %s --test-arg --input-file %s -o %t
+; RUN: FileCheck -check-prefix=RESULT %s < %t
+
+; INTERESTING-LABEL: define void @tokens(
+; INTERESTING: call void @llvm.token.consumer
+
+; RESULT-LABEL: define void @tokens(ptr %ptr) {
+; RESULT-NEXT: %token = call token @llvm.token.producer()
+; RESULT-NEXT:store i32 0, ptr %ptr, align 4
+; RESULT-NEXT:%chain = call token @llvm.token.chain(token %token)
+; RESULT-NEXT:call void @llvm.token.consumer(token %token)
+; RESULT-NEXT:store i32 1, ptr %ptr, align 4
+; RESULT-NEXT:ret void
+define void @tokens(ptr %ptr) {
+ %token = call token @llvm.token.producer()
+ store i32 0, ptr %ptr
+ %chain = call token @llvm.token.chain(token %token)
+ call void @llvm.token.consumer(token %chain) ; -> rewrite to use %token directly
+ store i32 1, ptr %ptr
+ ret void
+}
+
+declare token @llvm.token.producer()
+declare token @llvm.token.chain(token)
+declare void @llvm.token.consumer(token)
More information about the llvm-branch-commits
mailing list