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