Reapply "[lldb][dwarf] Compute fully qualified names on simplified template names...
[llvm-project.git] / mlir / test / Conversion / GPUCommon / lower-launch-func-bare-ptr.mlir
blob5e1c3b797235f243eb74d45676546e40895bfa66
1 // RUN: mlir-opt %s --gpu-to-llvm="use-bare-pointers-for-kernels=1" -split-input-file | FileCheck %s
3 module attributes {gpu.container_module} {
4   gpu.module @kernels [#nvvm.target]  {
5     llvm.func @kernel_1(%arg0: f32, %arg1: !llvm.ptr<1>) attributes {gpu.kernel, nvvm.kernel} {
6       %0 = llvm.mlir.undef : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
7       %1 = llvm.insertvalue %arg1, %0[0] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
8       %2 = llvm.insertvalue %arg1, %1[1] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
9       %3 = llvm.mlir.constant(0 : index) : i64
10       %4 = llvm.insertvalue %3, %2[2] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
11       %5 = llvm.mlir.constant(10 : index) : i64
12       %6 = llvm.insertvalue %5, %4[3, 0] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
13       %7 = llvm.mlir.constant(1 : index) : i64
14       %8 = llvm.insertvalue %7, %6[4, 0] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
15       llvm.return
16     }
17   }
18   func.func @foo() {
19     // CHECK: [[MEMREF:%.*]] = gpu.alloc () : memref<10xf32, 1>
20     // CHECK: [[DESCRIPTOR:%.*]] = builtin.unrealized_conversion_cast [[MEMREF]] : memref<10xf32, 1> to !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
21     // CHECK: [[PTR:%.*]] = llvm.extractvalue [[DESCRIPTOR]][1] : !llvm.struct<(ptr<1>, ptr<1>, i64, array<1 x i64>, array<1 x i64>)>
22     // CHECK: gpu.launch_func  @kernels::@kernel_1 blocks in ({{.*}}) threads in ({{.*}}) : i64
23     // CHECK: args(%{{.*}} : f32, [[PTR]] : !llvm.ptr<1>)
24     %0 = arith.constant 0. : f32
25     %1 = gpu.alloc () : memref<10xf32, 1>
26     %c8 = arith.constant 8 : index
27     gpu.launch_func  @kernels::@kernel_1 blocks in (%c8, %c8, %c8) threads in (%c8, %c8, %c8) args(%0 : f32, %1 : memref<10xf32, 1>)
28     return
29   }