// REQUIRES: host-supports-nvptx // RUN: mlir-opt %s --gpu-module-to-binary="format=llvm" | FileCheck %s // RUN: mlir-opt %s --gpu-module-to-binary="format=isa" | FileCheck %s -check-prefix=CHECK-ISA module attributes {gpu.container_module} { // CHECK-LABEL:gpu.binary @kernel_module1 // CHECK:[#gpu.object<#nvvm.target, offload = "{{.*}}">] gpu.module @kernel_module1 [#nvvm.target] { llvm.func @kernel(%arg0: i32, %arg1: !llvm.ptr, %arg2: !llvm.ptr, %arg3: i64, %arg4: i64, %arg5: i64) attributes {gpu.kernel} { llvm.return } } // CHECK-LABEL:gpu.binary @kernel_module2 // CHECK-ISA:[#gpu.object<#nvvm.target, properties = {O = 2 : i32}, assembly = "{{.*}}">, #gpu.object<#nvvm.target, properties = {O = 2 : i32}, assembly = "{{.*}}">] gpu.module @kernel_module2 [#nvvm.target, #nvvm.target] { llvm.func @kernel(%arg0: i32, %arg1: !llvm.ptr, %arg2: !llvm.ptr, %arg3: i64, %arg4: i64, %arg5: i64) attributes {gpu.kernel} { llvm.return } } // CHECK-LABEL:gpu.binary @kernel_module3 <#gpu.select_object<1 : i64>> // CHECK:[#gpu.object<#nvvm.target, offload = "{{.*}}">, #gpu.object<#nvvm.target, offload = "{{.*}}">] gpu.module @kernel_module3 <#gpu.select_object<1>> [ #nvvm.target, #nvvm.target] { llvm.func @kernel(%arg0: i32, %arg1: !llvm.ptr, %arg2: !llvm.ptr, %arg3: i64, %arg4: i64, %arg5: i64) attributes {gpu.kernel} { llvm.return } } }