xref: /llvm-project/llvm/test/tools/llvm-reduce/reduce-instructions-token.ll (revision f4cb935ce8ade596a3f027870b8e2d90c94870ba)
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=instructions --test FileCheck --test-arg --check-prefixes=CHECK,INTERESTING --test-arg %s --test-arg --input-file %s -o %t
2; RUN: FileCheck -check-prefixes=CHECK,RESULT %s < %t
3
4; CHECK-LABEL: define void @tokens(
5; INTERESTING: store i32 0
6; INTERESTING: call void @llvm.token.consumer
7
8; RESULT: %token = call token @llvm.token.producer()
9; RESULT-NEXT: store i32 0, ptr %ptr, align 4
10; RESULT-NEXT: call void @llvm.token.consumer(token %token)
11; RESULT-NEXT: ret void
12define void @tokens(ptr %ptr) {
13  %token = call token @llvm.token.producer()
14  store i32 0, ptr %ptr
15  call void @llvm.token.consumer(token %token)
16  store i32 1, ptr %ptr
17  ret void
18}
19
20declare token @llvm.token.producer()
21declare void @llvm.token.consumer(token)
22