@@ -60,21 +60,32 @@ spirv.func @cooperative_matrix_load_function(%ptr : !spirv.ptr<i32, Function>, %
6060// CHECK-LABEL: @cooperative_matrix_store
6161spirv.func @cooperative_matrix_store (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ,
6262 %m : !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >) " None" {
63- // CHECK: spirv.KHR.CooperativeMatrixStore {{%.*}}, {{%.*}}, {{%.*}}, RowMajor :
64- // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, !spirv.coopmatrix<8x16xi32, Workgroup, MatrixA>
65- spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , RowMajor :
66- !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >
63+ // CHECK: spirv.KHR.CooperativeMatrixStore {{%.*}}, {{%.*}}, {{%.*}}, < RowMajor> :
64+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, !spirv.coopmatrix<8x16xi32, Workgroup, MatrixA>, i32
65+ spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , < RowMajor > :
66+ !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >, i32
6767 spirv.Return
6868}
6969
7070// CHECK-LABEL: @cooperative_matrix_store_memoperand
7171spirv.func @cooperative_matrix_store_memoperand (%ptr : !spirv.ptr <i32 , StorageBuffer >,
7272 %m : !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >,
7373 %stride : i32 ) " None" {
74- // CHECK: spirv.KHR.CooperativeMatrixStore {{%.*}}, {{%.*}}, {{%.*}}, ColumnMajor ["Volatile"] :
75- // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, !spirv.coopmatrix<8x16xi32, Subgroup, MatrixB>
76- spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , ColumnMajor [" Volatile" ] :
77- !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >
74+ // CHECK: spirv.KHR.CooperativeMatrixStore {{%.*}}, {{%.*}}, {{%.*}}, <ColumnMajor>, <Volatile> :
75+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, !spirv.coopmatrix<8x16xi32, Subgroup, MatrixB>, i32
76+ spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , <ColumnMajor >, <Volatile > :
77+ !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >, i32
78+ spirv.Return
79+ }
80+
81+ // CHECK-LABEL: @cooperative_matrix_store_stride_i16
82+ spirv.func @cooperative_matrix_store_stride_i16 (%ptr : !spirv.ptr <i32 , StorageBuffer >,
83+ %m : !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >,
84+ %stride : i16 ) " None" {
85+ // CHECK: spirv.KHR.CooperativeMatrixStore {{%.*}}, {{%.*}}, {{%.*}}, <ColumnMajor> :
86+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, !spirv.coopmatrix<8x16xi32, Subgroup, MatrixB>, i16
87+ spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , <ColumnMajor > :
88+ !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >, i16
7889 spirv.Return
7990}
8091
@@ -128,9 +139,9 @@ spirv.func @cooperative_matrix_store_missing_attr(%ptr : !spirv.ptr<i32, Storage
128139
129140spirv.func @cooperative_matrix_store_missing_attr (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ,
130141 %m : !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >) " None" {
131- // expected-error @+1 {{expected valid keyword }}
142+ // expected-error @+1 {{expected '<' }}
132143 spirv.KHR.CooperativeMatrixStore %ptr , %m , %stride , :
133- !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >
144+ !spirv.ptr <i32 , StorageBuffer >, !spirv.coopmatrix <8 x16 xi32 , Workgroup , MatrixA >, i32
134145 spirv.Return
135146}
136147
@@ -139,8 +150,8 @@ spirv.func @cooperative_matrix_store_missing_attr(%ptr : !spirv.ptr<i32, Storage
139150spirv.func @cooperative_matrix_store_bad_object_type (%ptr : !spirv.ptr <i32 , StorageBuffer >,
140151 %stride : i32 ) " None" {
141152 // expected-error @+1 {{op operand #1 must be any SPIR-V cooperative matrix type}}
142- spirv.KHR.CooperativeMatrixStore %ptr , %stride , %stride , RowMajor :
143- !spirv.ptr <i32 , StorageBuffer >, i32
153+ spirv.KHR.CooperativeMatrixStore %ptr , %stride , %stride , < RowMajor > :
154+ !spirv.ptr <i32 , StorageBuffer >, i32 , i32
144155 spirv.Return
145156}
146157
0 commit comments