1
- // RUN: imex-opt --set-spirv-abi-attrs='client-api=opencl' %s | FileCheck %s --check-prefix=OPENCL
2
- // RUN: imex-opt --set-spirv-abi-attrs='client-api=vulkan' %s | FileCheck %s --check-prefix=VULKAN
1
+ // RUN: imex-opt --split-input-file -- set-spirv-abi-attrs='client-api=opencl' %s | FileCheck %s --check-prefix=OPENCL
2
+ // RUN: imex-opt --split-input-file -- set-spirv-abi-attrs='client-api=vulkan' %s | FileCheck %s --check-prefix=VULKAN
3
3
4
4
gpu.module @main_kernel {
5
5
gpu.func @main_kernel (%arg0: memref <8 xf32 >, %arg1: memref <8 xf32 >, %arg2: memref <8 xf32 >) kernel {
6
-
7
- // OPENCL: gpu.func @main_kernel(%arg0: memref<8xf32>, %arg1: memref<8xf32>, %arg2: memref<8xf32>) kernel attributes {VectorComputeFunctionINTEL, spirv.entry_point_abi = #spirv.entry_point_abi<>} {
8
- // VULKAN: gpu.func @main_kernel(%arg0: memref<8xf32>, %arg1: memref<8xf32>, %arg2: memref<8xf32>) kernel attributes {spirv.entry_point_abi = #spirv.entry_point_abi<workgroup_size = [1, 1, 1]>} {
9
-
6
+ // OPENCL-LABEL: gpu.func @main_kernel(%arg0: memref<8xf32>, %arg1: memref<8xf32>, %arg2: memref<8xf32>) kernel attributes
7
+ // OPENCL-SAME: {VectorComputeFunctionINTEL, spirv.entry_point_abi = #spirv.entry_point_abi<>} {
8
+ // VULKAN-LABEL : gpu.func @main_kernel(%arg0: memref<8xf32>, %arg1: memref<8xf32>, %arg2: memref<8xf32>) kernel attributes
9
+ // VULKAN-SAME: {spirv.entry_point_abi = #spirv.entry_point_abi<workgroup_size = [1, 1, 1]>} {
10
10
cf.br ^bb1
11
11
^bb1 : // pred: ^bb0
12
12
%0 = gpu.block_id x
@@ -17,3 +17,26 @@ gpu.module @main_kernel {
17
17
gpu.return
18
18
}
19
19
}
20
+
21
+ // -----
22
+
23
+ module {
24
+ module attributes {gpu.container_module } {
25
+ func.func @run (%arg0: memref <4096 x4096 xf16 >) -> memref <4096 x4096 xf16 > attributes {llvm.emit_c_interface } {
26
+ %c1 = arith.constant 1 : index
27
+ gpu.launch_func @run_kernel ::@run_kernel blocks in (%c1 , %c1 , %c1 ) threads in (%c1 , %c1 , %c1 ) args (%arg0 : memref <4096 x4096 xf16 >)
28
+ return %arg0 : memref <4096 x4096 xf16 >
29
+ }
30
+ gpu.module @run_kernel {
31
+ // OPENCL-LABEL: gpu.func @run_kernel(%arg0: memref<4096x4096xf16>) kernel attributes
32
+ // OPENCL-SAME: {VectorComputeFunctionINTEL, known_block_size = array<i32: 1, 1, 1>, known_grid_size = array<i32: 1, 1, 1>,
33
+ // OPENCL-SAME: spirv.entry_point_abi = #spirv.entry_point_abi<>} {
34
+ // VULKAN-LABEL: gpu.func @run_kernel(%arg0: memref<4096x4096xf16>) kernel attributes
35
+ // VULKAN-SAME: {known_block_size = array<i32: 1, 1, 1>, known_grid_size = array<i32: 1, 1, 1>,
36
+ // VULKAN-SAME: spirv.entry_point_abi = #spirv.entry_point_abi<workgroup_size = [1, 1, 1]>} {
37
+ gpu.func @run_kernel (%arg0: memref <4096 x4096 xf16 >) kernel attributes {known_block_size = array<i32 : 1 , 1 , 1 >, known_grid_size = array<i32 : 1 , 1 , 1 >} {
38
+ gpu.return
39
+ }
40
+ }
41
+ }
42
+ }
0 commit comments