90 lines · plain
1// RUN: mlir-opt %s -split-input-file -convert-gpu-to-rocdl='use-bare-ptr-memref-call-conv=0' | FileCheck %s --check-prefixes=CHECK,ROCDL2// RUN: mlir-opt %s -split-input-file -convert-gpu-to-nvvm='use-bare-ptr-memref-call-conv=0' | FileCheck %s --check-prefixes=CHECK,NVVM3 4gpu.module @kernel {5 gpu.func @test_func_readonly(%arg0 : memref<f32> {llvm.readonly} ) {6 gpu.return7 }8}9 10// CHECK-LABEL: llvm.func @test_func_readonly11// ROCDL-SAME: !llvm.ptr {llvm.readonly}12// NVVM-SAME: !llvm.ptr {llvm.readonly}13 14 15// -----16 17gpu.module @kernel {18 gpu.func @test_func_writeonly(%arg0 : memref<f32> {llvm.writeonly} ) {19 gpu.return20 }21}22 23// CHECK-LABEL: llvm.func @test_func_writeonly24// ROCDL-SAME: !llvm.ptr {llvm.writeonly}25// NVVM-SAME: !llvm.ptr {llvm.writeonly}26 27// -----28 29gpu.module @kernel {30 gpu.func @test_func_readonly_ptr(%arg0 : !llvm.ptr {llvm.readonly} ) {31 gpu.return32 }33}34 35// CHECK-LABEL: llvm.func @test_func_readonly_ptr36// ROCDL-SAME: !llvm.ptr {llvm.readonly}37// NVVM-SAME: !llvm.ptr {llvm.readonly}38 39// -----40 41gpu.module @kernel {42 gpu.func @test_func_nonnull(%arg0 : memref<f32> {llvm.nonnull} ) {43 gpu.return44 }45}46 47// CHECK-LABEL: llvm.func @test_func_nonnull48// ROCDL-SAME: !llvm.ptr {llvm.nonnull}49// NVVM-SAME: !llvm.ptr {llvm.nonnull}50 51 52// -----53 54gpu.module @kernel {55 gpu.func @test_func_dereferenceable(%arg0 : memref<f32> {llvm.dereferenceable = 4 : i64} ) {56 gpu.return57 }58}59 60// CHECK-LABEL: llvm.func @test_func_dereferenceable61// ROCDL-SAME: !llvm.ptr {llvm.dereferenceable = 4 : i64}62// NVVM-SAME: !llvm.ptr {llvm.dereferenceable = 4 : i64}63 64 65// -----66 67gpu.module @kernel {68 gpu.func @test_func_dereferenceable_or_null(%arg0 : memref<f32> {llvm.dereferenceable_or_null = 4 : i64} ) {69 gpu.return70 }71}72 73// CHECK-LABEL: llvm.func @test_func_dereferenceable_or_null74// ROCDL-SAME: !llvm.ptr {llvm.dereferenceable_or_null = 4 : i64}75// NVVM-SAME: !llvm.ptr {llvm.dereferenceable_or_null = 4 : i64}76 77// -----78 79gpu.module @kernel {80 gpu.func @test_func_noundef(%arg0 : memref<f32> {llvm.noundef} ) {81 gpu.return82 }83}84 85// CHECK-LABEL: llvm.func @test_func_noundef86// ROCDL-SAME: !llvm.ptr {llvm.noundef}87// ROCDL-SAME: i64 {llvm.noundef}88// NVVM-SAME: !llvm.ptr {llvm.noundef}89// NVVM-SAME: i64 {llvm.noundef}90