| // RUN: mlir-translate -mlir-to-rocdlir %s | FileCheck %s |
| |
| llvm.func @rocdl_special_regs() -> !llvm.i32 { |
| // CHECK-LABEL: rocdl_special_regs |
| // CHECK: call i32 @llvm.amdgcn.workitem.id.x() |
| %1 = rocdl.workitem.id.x : !llvm.i32 |
| // CHECK: call i32 @llvm.amdgcn.workitem.id.y() |
| %2 = rocdl.workitem.id.y : !llvm.i32 |
| // CHECK: call i32 @llvm.amdgcn.workitem.id.z() |
| %3 = rocdl.workitem.id.z : !llvm.i32 |
| // CHECK: call i32 @llvm.amdgcn.workgroup.id.x() |
| %4 = rocdl.workgroup.id.x : !llvm.i32 |
| // CHECK: call i32 @llvm.amdgcn.workgroup.id.y() |
| %5 = rocdl.workgroup.id.y : !llvm.i32 |
| // CHECK: call i32 @llvm.amdgcn.workgroup.id.z() |
| %6 = rocdl.workgroup.id.z : !llvm.i32 |
| // CHECK: call i64 @__ockl_get_local_size(i32 0) |
| %7 = rocdl.workgroup.dim.x : !llvm.i64 |
| // CHECK: call i64 @__ockl_get_local_size(i32 1) |
| %8 = rocdl.workgroup.dim.y : !llvm.i64 |
| // CHECK: call i64 @__ockl_get_local_size(i32 2) |
| %9 = rocdl.workgroup.dim.z : !llvm.i64 |
| // CHECK: call i64 @__ockl_get_global_size(i32 0) |
| %10 = rocdl.grid.dim.x : !llvm.i64 |
| // CHECK: call i64 @__ockl_get_global_size(i32 1) |
| %11 = rocdl.grid.dim.y : !llvm.i64 |
| // CHECK: call i64 @__ockl_get_global_size(i32 2) |
| %12 = rocdl.grid.dim.z : !llvm.i64 |
| llvm.return %1 : !llvm.i32 |
| } |
| |
| llvm.func @kernel_func() attributes {gpu.kernel} { |
| // CHECK-LABEL: amdgpu_kernel void @kernel_func |
| llvm.return |
| } |