brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · a18633e Raw
28 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s --check-prefix=LLVM2// RUN: mlir-opt %s | mlir-opt | FileCheck %s3 4// LLVM-LABEL: @llvm_nvvm_barrier(5// LLVM-SAME: i32 %[[barId:.*]], i32 %[[numThreads:.*]], i32 %[[redOperand:.*]])6llvm.func @llvm_nvvm_barrier(%barID : i32, %numberOfThreads : i32, %redOperand : i32) {7  // LLVM: call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0)8  // CHECK: nvvm.barrier9  nvvm.barrier10  // LLVM: call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 %[[barId]])11  // CHECK: nvvm.barrier id = %{{.*}}12  nvvm.barrier id = %barID13  // LLVM: call void @llvm.nvvm.barrier.cta.sync.aligned.count(i32 %[[barId]], i32 %[[numThreads]])14  // CHECK: nvvm.barrier id = %{{.*}} number_of_threads = %{{.*}}15  nvvm.barrier id = %barID number_of_threads = %numberOfThreads16  // LLVM: %{{.*}} = call i32 @llvm.nvvm.barrier0.and(i32 %[[redOperand]])17  // CHECK: %{{.*}} = nvvm.barrier #nvvm.reduction<and> %{{.*}} -> i3218  %0 = nvvm.barrier #nvvm.reduction<and> %redOperand -> i3219  // LLVM: %{{.*}} = call i32 @llvm.nvvm.barrier0.or(i32 %[[redOperand]])20  // CHECK: %{{.*}} = nvvm.barrier #nvvm.reduction<or> %{{.*}} -> i3221  %1 = nvvm.barrier #nvvm.reduction<or> %redOperand -> i3222  // LLVM: %{{.*}} = call i32 @llvm.nvvm.barrier0.popc(i32 %[[redOperand]])23  // CHECK: %{{.*}} = nvvm.barrier #nvvm.reduction<popc> %{{.*}} -> i3224  %2 = nvvm.barrier #nvvm.reduction<popc> %redOperand -> i3225 26  llvm.return27}28