1- // RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip -split-input-file %s | FileCheck %s
1+ // RUN: mlir-translate -- no-implicit-module -- test-spirv-roundtrip - -split-input-file %s | FileCheck %s
22
33// RUN: %if spirv-tools %{ rm -rf %t %}
44// RUN: %if spirv-tools %{ mkdir %t %}
55// RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --split-input-file --spirv-save-validation-files-with-prefix=%t/module %s %}
66// RUN: %if spirv-tools %{ spirv-val %t %}
77
8- spirv.module Logical GLSL450 requires #spirv.vce <v1.3 , [Shader , Linkage , SubgroupBallotKHR , Groups , SubgroupBufferBlockIOINTEL , GroupNonUniformArithmetic , GroupUniformArithmeticKHR ], [SPV_KHR_storage_buffer_storage_class , SPV_KHR_shader_ballot , SPV_INTEL_subgroups , SPV_KHR_uniform_group_instructions ]> {
8+ spirv.module Logical GLSL450 requires #spirv.vce <v1.3 ,
9+ [Shader , Linkage , SubgroupBallotKHR , Groups , GroupNonUniformArithmetic , GroupUniformArithmeticKHR ],
10+ [SPV_KHR_storage_buffer_storage_class , SPV_KHR_shader_ballot , SPV_KHR_uniform_group_instructions ]> {
911 // CHECK-LABEL: @subgroup_ballot
1012 spirv.func @subgroup_ballot (%predicate: i1 ) -> vector <4 xi32 > " None" {
1113 // CHECK: %{{.*}} = spirv.KHR.SubgroupBallot %{{.*}}: vector<4xi32>
@@ -24,30 +26,6 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.3, [Shader, Linkage, Subgrou
2426 %0 = spirv.GroupBroadcast <Workgroup > %value , %localid : f32 , vector <3 xi32 >
2527 spirv.ReturnValue %0: f32
2628 }
27- // CHECK-LABEL: @subgroup_block_read_intel
28- spirv.func @subgroup_block_read_intel (%ptr : !spirv.ptr <i32 , StorageBuffer >) -> i32 " None" {
29- // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> i32
30- %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr <i32 , StorageBuffer > -> i32
31- spirv.ReturnValue %0: i32
32- }
33- // CHECK-LABEL: @subgroup_block_read_intel_vector
34- spirv.func @subgroup_block_read_intel_vector (%ptr : !spirv.ptr <i32 , StorageBuffer >) -> vector <3 xi32 > " None" {
35- // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>
36- %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr <i32 , StorageBuffer > -> vector <3 xi32 >
37- spirv.ReturnValue %0: vector <3 xi32 >
38- }
39- // CHECK-LABEL: @subgroup_block_write_intel
40- spirv.func @subgroup_block_write_intel (%ptr : !spirv.ptr <i32 , StorageBuffer >, %value: i32 ) -> () " None" {
41- // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : i32
42- spirv.INTEL.SubgroupBlockWrite " StorageBuffer" %ptr , %value : i32
43- spirv.Return
44- }
45- // CHECK-LABEL: @subgroup_block_write_intel_vector
46- spirv.func @subgroup_block_write_intel_vector (%ptr : !spirv.ptr <i32 , StorageBuffer >, %value: vector <3 xi32 >) -> () " None" {
47- // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : vector<3xi32>
48- spirv.INTEL.SubgroupBlockWrite " StorageBuffer" %ptr , %value : vector <3 xi32 >
49- spirv.Return
50- }
5129 // CHECK-LABEL: @group_iadd
5230 spirv.func @group_iadd (%value: i32 ) -> i32 " None" {
5331 // CHECK: spirv.GroupIAdd <Workgroup> <Reduce> %{{.*}} : i32
0 commit comments