brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 14060e6 Raw
35 lines · plain
1// RUN: mlir-translate --no-implicit-module --test-spirv-roundtrip %s | FileCheck %s2 3// RUN: %if spirv-tools %{ rm -rf %t %}4// RUN: %if spirv-tools %{ mkdir %t %}5// RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --spirv-save-validation-files-with-prefix=%t/module %s %}6// RUN: %if spirv-tools %{ spirv-val %t %}7 8spirv.module Physical64 GLSL450 requires #spirv.vce<v1.3, [Addresses, Shader, Linkage, SubgroupBufferBlockIOINTEL],9                                                          [SPV_KHR_storage_buffer_storage_class, SPV_INTEL_subgroups]> {10  // CHECK-LABEL: @subgroup_block_read_intel11  spirv.func @subgroup_block_read_intel(%ptr : !spirv.ptr<i32, StorageBuffer>) -> i32 "None" {12    // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> i3213    %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> i3214    spirv.ReturnValue %0: i3215  }16  // CHECK-LABEL: @subgroup_block_read_intel_vector17  spirv.func @subgroup_block_read_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>) -> vector<3xi32> "None" {18    // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>19    %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>20    spirv.ReturnValue %0: vector<3xi32>21  }22  // CHECK-LABEL: @subgroup_block_write_intel23  spirv.func @subgroup_block_write_intel(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: i32) -> () "None" {24    // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : i3225    spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : i3226    spirv.Return27  }28  // CHECK-LABEL: @subgroup_block_write_intel_vector29  spirv.func @subgroup_block_write_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: vector<3xi32>) -> () "None" {30    // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : vector<3xi32>31    spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : vector<3xi32>32    spirv.Return33  }34}35