[Mlir-commits] [mlir] [mlir][spirv] Add integration test for `vector.interleave` and `vector.shuffle` (PR #93595)
Jakub Kuderski
llvmlistbot at llvm.org
Tue May 28 17:04:19 PDT 2024
================
@@ -0,0 +1,53 @@
+// RUN: mlir-vulkan-runner %s \
+// RUN: --shared-libs=%vulkan-runtime-wrappers,%mlir_runner_utils \
+// RUN: --entry-point-result=void | FileCheck %s
+
+// CHECK: [0, 2, 1, 3]
+module attributes {
+ gpu.container_module,
+ spirv.target_env = #spirv.target_env<
+ #spirv.vce<v1.0, [Shader], [SPV_KHR_storage_buffer_storage_class]>, #spirv.resource_limits<>>
+} {
+ gpu.module @kernels {
+ gpu.func @kernel_vector_interleave(%arg0 : memref<2xi32>, %arg1 : memref<2xi32>, %arg2 : memref<4xi32>)
+ kernel attributes { spirv.entry_point_abi = #spirv.entry_point_abi<workgroup_size = [1, 1, 1]>} {
+ %c0 = arith.constant 0 : index
+ %vec0 = vector.load %arg0[%c0] : memref<2xi32>, vector<2xi32>
+ %vec1 = vector.load %arg1[%c0] : memref<2xi32>, vector<2xi32>
+ %result = vector.interleave %vec0, %vec1 : vector<2xi32> -> vector<4xi32>
+ vector.store %result, %arg2[%c0] : memref<4xi32>, vector<4xi32>
+ gpu.return
+ }
+ }
+
+ func.func @main() {
+ // Allocate 3 buffers.
+ %buf0 = memref.alloc() : memref<2xi32>
+ %buf1 = memref.alloc() : memref<2xi32>
+ %buf2 = memref.alloc() : memref<4xi32>
+
+ %idx0 = arith.constant 0 : index
+ %idx1 = arith.constant 1 : index
+ %idx4 = arith.constant 4 : index
+
+ // Initialize input buffer
----------------
kuhar wrote:
```suggestion
// Initialize input buffer.
```
https://github.com/llvm/llvm-project/pull/93595
More information about the Mlir-commits
mailing list