// 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 }