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