Home | History | Annotate | Download | only in NVPTX
      1 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | FileCheck %s
      2 
      3 declare i1 @llvm.nvvm.vote.all(i1)
      4 ; CHECK-LABEL: .func{{.*}}vote.all
      5 define 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 
     11 declare i1 @llvm.nvvm.vote.any(i1)
     12 ; CHECK-LABEL: .func{{.*}}vote.any
     13 define 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 
     19 declare i1 @llvm.nvvm.vote.uni(i1)
     20 ; CHECK-LABEL: .func{{.*}}vote.uni
     21 define 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 
     27 declare i32 @llvm.nvvm.vote.ballot(i1)
     28 ; CHECK-LABEL: .func{{.*}}vote.ballot
     29 define 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 
     35 declare i1 @llvm.nvvm.vote.all.sync(i32, i1)
     36 ; CHECK-LABEL: .func{{.*}}vote.sync.all
     37 define 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 
     43 declare i1 @llvm.nvvm.vote.any.sync(i32, i1)
     44 ; CHECK-LABEL: .func{{.*}}vote.sync.any
     45 define 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 
     51 declare i1 @llvm.nvvm.vote.uni.sync(i32, i1)
     52 ; CHECK-LABEL: .func{{.*}}vote.sync.uni
     53 define 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 
     59 declare i32 @llvm.nvvm.vote.ballot.sync(i32, i1)
     60 ; CHECK-LABEL: .func{{.*}}vote.sync.ballot
     61 define 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