Home | History | Annotate | Download | only in NVPTX
      1 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | FileCheck %s
      2 
      3 declare void @llvm.nvvm.bar.warp.sync(i32)
      4 declare void @llvm.nvvm.barrier.sync(i32)
      5 declare void @llvm.nvvm.barrier.sync.cnt(i32, i32)
      6 
      7 ; CHECK-LABEL: .func{{.*}}barrier.sync
      8 define void @barrier.sync(i32 %id, i32 %cnt) {
      9   ; CHECK: ld.param.u32 	[[ID:%r[0-9]+]], [barrier.sync_param_0];
     10   ; CHECK: ld.param.u32 	[[CNT:%r[0-9]+]], [barrier.sync_param_1];
     11 
     12   ; CHECK:  barrier.sync [[ID]], [[CNT]];
     13   call void @llvm.nvvm.barrier.sync.cnt(i32 %id, i32 %cnt)
     14   ; CHECK:  barrier.sync [[ID]], 2;
     15   call void @llvm.nvvm.barrier.sync.cnt(i32 %id, i32 2)
     16   ; CHECK:  barrier.sync 3, [[CNT]];
     17   call void @llvm.nvvm.barrier.sync.cnt(i32 3, i32 %cnt)
     18   ; CHECK:  barrier.sync 4, 5;
     19   call void @llvm.nvvm.barrier.sync.cnt(i32 4, i32 5)
     20 
     21   ; CHECK: barrier.sync [[ID]];
     22   call void @llvm.nvvm.barrier.sync(i32 %id)
     23   ; CHECK: barrier.sync 1;
     24   call void @llvm.nvvm.barrier.sync(i32 1)
     25 
     26   ; CHECK: bar.warp.sync [[ID]];
     27   call void @llvm.nvvm.bar.warp.sync(i32 %id)
     28   ; CHECK: bar.warp.sync 6;
     29   call void @llvm.nvvm.bar.warp.sync(i32 6)
     30   ret void;
     31 }
     32 
     33