1; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | FileCheck %s
2
3declare i1 @llvm.nvvm.vote.all(i1)
4; CHECK-LABEL: .func{{.*}}vote.all
5define i1 @vote.all(i1 %pred) {
6  ; CHECK: vote.all.pred
7  %val = call i1 @llvm.nvvm.vote.all(i1 %pred)
8  ret i1 %val
9}
10
11declare i1 @llvm.nvvm.vote.any(i1)
12; CHECK-LABEL: .func{{.*}}vote.any
13define i1 @vote.any(i1 %pred) {
14  ; CHECK: vote.any.pred
15  %val = call i1 @llvm.nvvm.vote.any(i1 %pred)
16  ret i1 %val
17}
18
19declare i1 @llvm.nvvm.vote.uni(i1)
20; CHECK-LABEL: .func{{.*}}vote.uni
21define i1 @vote.uni(i1 %pred) {
22  ; CHECK: vote.uni.pred
23  %val = call i1 @llvm.nvvm.vote.uni(i1 %pred)
24  ret i1 %val
25}
26
27declare i32 @llvm.nvvm.vote.ballot(i1)
28; CHECK-LABEL: .func{{.*}}vote.ballot
29define i32 @vote.ballot(i1 %pred) {
30  ; CHECK: vote.ballot.b32
31  %val = call i32 @llvm.nvvm.vote.ballot(i1 %pred)
32  ret i32 %val
33}
34
35declare i1 @llvm.nvvm.vote.all.sync(i32, i1)
36; CHECK-LABEL: .func{{.*}}vote.sync.all
37define i1 @vote.sync.all(i32 %mask, i1 %pred) {
38  ; CHECK: vote.sync.all.pred
39  %val = call i1 @llvm.nvvm.vote.all.sync(i32 %mask, i1 %pred)
40  ret i1 %val
41}
42
43declare i1 @llvm.nvvm.vote.any.sync(i32, i1)
44; CHECK-LABEL: .func{{.*}}vote.sync.any
45define i1 @vote.sync.any(i32 %mask, i1 %pred) {
46  ; CHECK: vote.sync.any.pred
47  %val = call i1 @llvm.nvvm.vote.any.sync(i32 %mask, i1 %pred)
48  ret i1 %val
49}
50
51declare i1 @llvm.nvvm.vote.uni.sync(i32, i1)
52; CHECK-LABEL: .func{{.*}}vote.sync.uni
53define i1 @vote.sync.uni(i32 %mask, i1 %pred) {
54  ; CHECK: vote.sync.uni.pred
55  %val = call i1 @llvm.nvvm.vote.uni.sync(i32 %mask, i1 %pred)
56  ret i1 %val
57}
58
59declare i32 @llvm.nvvm.vote.ballot.sync(i32, i1)
60; CHECK-LABEL: .func{{.*}}vote.sync.ballot
61define i32 @vote.sync.ballot(i32 %mask, i1 %pred) {
62  ; CHECK: vote.sync.ballot.b32
63  %val = call i32 @llvm.nvvm.vote.ballot.sync(i32 %mask, i1 %pred)
64  ret i32 %val
65}
66