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.arsena...@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)

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to