@@ -23,37 +23,46 @@ spirv.func @cooperative_matrix_length_wrong_matrix() -> i32 "None" {
23
23
24
24
// CHECK-LABEL: @cooperative_matrix_load
25
25
spirv.func @cooperative_matrix_load (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ) " None" {
26
- // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, RowMajor :
27
- // CHECK-SAME: !spirv.ptr<i32, StorageBuffer> as !spirv.coopmatrix<16x8xi32, Workgroup, MatrixA>
28
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , RowMajor :
29
- !spirv.ptr <i32 , StorageBuffer > as !spirv.coopmatrix <16 x8 xi32 , Workgroup , MatrixA >
26
+ // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, < RowMajor> :
27
+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, i32 -> !spirv.coopmatrix<16x8xi32, Workgroup, MatrixA>
28
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , < RowMajor > :
29
+ !spirv.ptr <i32 , StorageBuffer >, i32 -> !spirv.coopmatrix <16 x8 xi32 , Workgroup , MatrixA >
30
30
spirv.Return
31
31
}
32
32
33
33
// CHECK-LABEL: @cooperative_matrix_load_memoperand
34
34
spirv.func @cooperative_matrix_load_memoperand (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ) " None" {
35
- // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, ColumnMajor [" Volatile"] :
36
- // CHECK-SAME: !spirv.ptr<i32, StorageBuffer> as !spirv.coopmatrix<16x8xi32, Workgroup, MatrixA>
37
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , ColumnMajor [ " Volatile" ] :
38
- !spirv.ptr <i32 , StorageBuffer > as !spirv.coopmatrix <16 x8 xi32 , Workgroup , MatrixA >
35
+ // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, < ColumnMajor>, < Volatile> :
36
+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, i32 -> !spirv.coopmatrix<16x8xi32, Workgroup, MatrixA>
37
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , < ColumnMajor >, < Volatile > :
38
+ !spirv.ptr <i32 , StorageBuffer >, i32 -> !spirv.coopmatrix <16 x8 xi32 , Workgroup , MatrixA >
39
39
spirv.Return
40
40
}
41
41
42
42
// CHECK-LABEL: @cooperative_matrix_load_vector_ptr_type
43
43
spirv.func @cooperative_matrix_load_vector_ptr_type (%ptr : !spirv.ptr <vector <4 xi32 >, StorageBuffer >, %stride : i32 ) " None" {
44
- // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, RowMajor [" Volatile"] :
45
- // CHECK-SAME: !spirv.ptr<vector<4xi32>, StorageBuffer> as !spirv.coopmatrix<8x16xi32, Subgroup, MatrixB>
46
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , RowMajor [ " Volatile" ] :
47
- !spirv.ptr <vector <4 xi32 >, StorageBuffer > as !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >
44
+ // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, < RowMajor>, < Volatile> :
45
+ // CHECK-SAME: !spirv.ptr<vector<4xi32>, StorageBuffer>, i32 -> !spirv.coopmatrix<8x16xi32, Subgroup, MatrixB>
46
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , < RowMajor >, < Volatile > :
47
+ !spirv.ptr <vector <4 xi32 >, StorageBuffer >, i32 -> !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixB >
48
48
spirv.Return
49
49
}
50
50
51
51
// CHECK-LABEL: @cooperative_matrix_load_function
52
52
spirv.func @cooperative_matrix_load_function (%ptr : !spirv.ptr <i32 , Function >, %stride : i32 ) " None" {
53
- // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, RowMajor :
54
- // CHECK-SAME: !spirv.ptr<i32, Function> as !spirv.coopmatrix<8x16xi32, Subgroup, MatrixAcc>
55
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , RowMajor :
56
- !spirv.ptr <i32 , Function > as !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixAcc >
53
+ // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, <RowMajor> :
54
+ // CHECK-SAME: !spirv.ptr<i32, Function>, i32 -> !spirv.coopmatrix<8x16xi32, Subgroup, MatrixAcc>
55
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , <RowMajor > :
56
+ !spirv.ptr <i32 , Function >, i32 -> !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixAcc >
57
+ spirv.Return
58
+ }
59
+
60
+ // CHECK-LABEL: @cooperative_matrix_load_stride_i16
61
+ spirv.func @cooperative_matrix_load_stride_i16 (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i16 ) " None" {
62
+ // CHECK: {{%.*}} = spirv.KHR.CooperativeMatrixLoad {{%.*}}, {{%.*}}, <RowMajor> :
63
+ // CHECK-SAME: !spirv.ptr<i32, StorageBuffer>, i16 -> !spirv.coopmatrix<16x8xi32, Workgroup, MatrixA>
64
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , <RowMajor > :
65
+ !spirv.ptr <i32 , StorageBuffer >, i16 -> !spirv.coopmatrix <16 x8 xi32 , Workgroup , MatrixA >
57
66
spirv.Return
58
67
}
59
68
@@ -82,8 +91,8 @@ spirv.func @cooperative_matrix_store_memoperand(%ptr : !spirv.ptr<i32, StorageBu
82
91
83
92
spirv.func @cooperative_matrix_load_bad_ptr (%ptr : !spirv.ptr <!spirv.struct <(f32 [0 ])>, StorageBuffer >, %stride : i32 ) " None" {
84
93
// expected-error @+1 {{Pointer must point to a scalar or vector type}}
85
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , ColumnMajor :
86
- !spirv.ptr <!spirv.struct <(f32 [0 ])>, StorageBuffer > as !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
94
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , < ColumnMajor > :
95
+ !spirv.ptr <!spirv.struct <(f32 [0 ])>, StorageBuffer >, i32 -> !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
87
96
spirv.Return
88
97
}
89
98
@@ -92,25 +101,25 @@ spirv.func @cooperative_matrix_load_bad_ptr(%ptr : !spirv.ptr<!spirv.struct<(f32
92
101
spirv.func @cooperative_matrix_load_missing_attr (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ) " None" {
93
102
// expected-error @+1 {{expected ','}}
94
103
%0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride :
95
- !spirv.ptr <i32 , StorageBuffer > as !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
104
+ !spirv.ptr <i32 , StorageBuffer >, i32 -> !spirv.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
96
105
spirv.Return
97
106
}
98
107
99
108
// -----
100
109
101
110
spirv.func @cooperative_matrix_load_missing_attr (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ) " None" {
102
- // expected-error @+1 {{expected valid keyword }}
111
+ // expected-error @+1 {{expected '<' }}
103
112
%0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , :
104
- !spirv.ptr <i32 , StorageBuffer > as !spirv.NV.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
113
+ !spirv.ptr <i32 , StorageBuffer >, i32 -> !spirv.NV.coopmatrix <8 x16 xi32 , Subgroup , MatrixA >
105
114
spirv.Return
106
115
}
107
116
108
117
// -----
109
118
110
119
spirv.func @cooperative_matrix_load_bad_result (%ptr : !spirv.ptr <i32 , StorageBuffer >, %stride : i32 ) " None" {
111
120
// expected-error @+1 {{op result #0 must be any SPIR-V cooperative matrix type}}
112
- %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , ColumnMajor :
113
- !spirv.ptr <i32 , StorageBuffer > as !spirv.NV.coopmatrix <8 x16 xi32 , Subgroup >
121
+ %0 = spirv.KHR.CooperativeMatrixLoad %ptr , %stride , < ColumnMajor > :
122
+ !spirv.ptr <i32 , StorageBuffer >, i32 -> !spirv.NV.coopmatrix <8 x16 xi32 , Subgroup >
114
123
spirv.Return
115
124
}
116
125
0 commit comments