2 INST_TEST_CASE(TestGEMM,
3 test_params{'n', 'n', 3, 2, 1, 1.0, 0.0, 2, 5, 8, {}, true, mkldnn_invalid_arguments},
4 test_params{'t', 'n', 3, 2, 2, 1.0, 0.0, 1, 5, 8, {}, true, mkldnn_invalid_arguments},
5 test_params{'n', 't', 3, 2, 1, 1.0, 0.0, 3, 1, 8, {}, true, mkldnn_invalid_arguments},
6 test_params{'n', 'd', 3, 2, 1, 1.0, 0.0, 3, 3, 3, {}, true, mkldnn_invalid_arguments},
8 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, {}, false},
9 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, {}, false},
10 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, {}, false},
11 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, {}, false},
12 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, {}, false},
13 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, {}, false},
14 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, {}, false},
15 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, {}, false},
16 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, {}, false},
18 test_params{'n', 'n', 2000, 2000, 2000, 1.0, 0.0, 2000, 2000, 2000, {}, false},
19 test_params{'n', 'n', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, {}, false},
20 test_params{'t', 'n', 2000, 2000, 2000, 1.0, 0.0, 2000, 2000, 2000, {}, false},
21 test_params{'t', 'n', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, {}, false},
22 test_params{'n', 't', 2000, 2000, 2000, 1.0, 0.0, 2000, 2000, 2000, {}, false},
23 test_params{'n', 't', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, {}, false},
24 test_params{'t', 't', 2000, 2000, 2000, 1.0, 0.0, 2000, 2000, 2000, {}, false},
25 test_params{'t', 't', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, {}, false}
29 constexpr test_igemm_params fix_use_oc = {'F', true, true, false};
30 constexpr test_igemm_params col_use_oc = {'C', true, true, false};
31 constexpr test_igemm_params row_use_oc = {'R', true, true, false};
33 constexpr test_igemm_params fix_use_all_offsets = {'F', false, false, false};
34 constexpr test_igemm_params col_use_all_offsets = {'C', false, false, false};
35 constexpr test_igemm_params row_use_all_offsets = {'R', false, false, false};
37 constexpr test_igemm_params fix_no_offsets = {'F', true, true, true};
38 constexpr test_igemm_params col_no_offsets = {'C', true, true, true};
39 constexpr test_igemm_params row_no_offsets = {'R', true, true, true};
41 INST_TEST_CASE(TestGEMM_expected_failures,
42 test_params{'n', 'n', 3, 2, 1, 1.0, 0.0, 2, 5, 8, {}, true, mkldnn_invalid_arguments},
43 test_params{'t', 'n', 3, 2, 2, 1.0, 0.0, 1, 5, 8, {}, true, mkldnn_invalid_arguments},
44 test_params{'n', 't', 3, 2, 1, 1.0, 0.0, 3, 1, 8, {}, true, mkldnn_invalid_arguments},
45 test_params{'n', 'd', 3, 2, 1, 1.0, 0.0, 3, 3, 3, {}, true, mkldnn_invalid_arguments},
47 test_params{'n', 'n', 3, 2, 1, 1.0, 0.0, 2, 5, 8, {}, true, mkldnn_invalid_arguments},
48 test_params{'t', 'n', 3, 2, 2, 1.0, 0.0, 1, 5, 8, {}, true, mkldnn_invalid_arguments},
49 test_params{'n', 't', 3, 2, 1, 1.0, 0.0, 3, 1, 8, {}, true, mkldnn_invalid_arguments},
50 test_params{'n', 'd', 3, 2, 1, 1.0, 0.0, 3, 3, 3, {}, true, mkldnn_invalid_arguments},
52 test_params{'n', 'n', 3, 2, 1, 1.0, 0.0, 2, 5, 8, {}, true, mkldnn_invalid_arguments},
53 test_params{'t', 'n', 3, 2, 2, 1.0, 0.0, 1, 5, 8, {}, true, mkldnn_invalid_arguments},
54 test_params{'n', 't', 3, 2, 1, 1.0, 0.0, 3, 1, 8, {}, true, mkldnn_invalid_arguments},
55 test_params{'n', 'd', 3, 2, 1, 1.0, 0.0, 3, 3, 3, {}, true, mkldnn_invalid_arguments}
58 INST_TEST_CASE(TestGEMM_general_cases_fix_offset,
59 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_oc, false},
60 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_oc, false},
61 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_oc, false},
62 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_oc, false},
63 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, fix_use_oc, false},
64 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, fix_use_oc, false},
65 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_use_oc, false},
66 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_use_oc, false},
67 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, fix_use_oc, false},
69 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_all_offsets, false},
70 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_all_offsets,false},
71 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_all_offsets, false},
72 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_use_all_offsets, false},
73 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, fix_use_all_offsets, false},
74 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, fix_use_all_offsets, false},
75 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_use_all_offsets, false},
76 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_use_all_offsets, false},
77 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, fix_use_all_offsets, false},
79 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_no_offsets, false},
80 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_no_offsets,false},
81 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_no_offsets, false},
82 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, fix_no_offsets, false},
83 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, fix_no_offsets, false},
84 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, fix_no_offsets, false},
85 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_no_offsets, false},
86 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, fix_no_offsets, false},
87 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, fix_no_offsets, false}
90 INST_TEST_CASE(TestGEMM_general_cases_col_offset,
91 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_oc, false},
92 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_oc, false},
93 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_oc, false},
94 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_oc, false},
95 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, col_use_oc, false},
96 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, col_use_oc, false},
97 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_use_oc, false},
98 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_use_oc, false},
99 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, col_use_oc, false},
101 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_all_offsets, false},
102 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_all_offsets,false},
103 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_all_offsets, false},
104 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_use_all_offsets, false},
105 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, col_use_all_offsets, false},
106 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, col_use_all_offsets, false},
107 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_use_all_offsets, false},
108 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_use_all_offsets, false},
109 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, col_use_all_offsets, false},
111 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_no_offsets, false},
112 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_no_offsets,false},
113 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_no_offsets, false},
114 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, col_no_offsets, false},
115 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, col_no_offsets, false},
116 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, col_no_offsets, false},
117 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_no_offsets, false},
118 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, col_no_offsets, false},
119 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, col_no_offsets, false}
122 INST_TEST_CASE(TestGEMM_general_cases_row_offset,
123 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_oc, false},
124 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_oc, false},
125 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_oc, false},
126 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_oc, false},
127 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, row_use_oc, false},
128 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, row_use_oc, false},
129 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_use_oc, false},
130 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_use_oc, false},
131 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, row_use_oc, false},
133 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_all_offsets, false},
134 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_all_offsets,false},
135 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_all_offsets, false},
136 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_use_all_offsets, false},
137 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, row_use_all_offsets, false},
138 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, row_use_all_offsets, false},
139 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_use_all_offsets, false},
140 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_use_all_offsets, false},
141 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, row_use_all_offsets, false},
143 test_params{'N', 'n', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_no_offsets, false},
144 test_params{'n', 'T', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_no_offsets,false},
145 test_params{'T', 'N', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_no_offsets, false},
146 test_params{'t', 't', 30, 20, 10, 2.0, 1.0, 60, 50, 80, row_no_offsets, false},
147 test_params{'n', 'n', 100, 100, 2, 1.0, 2.0, 100, 100, 100, row_no_offsets, false},
148 test_params{'n', 't', 100, 2, 100, 1.0, 2.0, 100, 100, 100, row_no_offsets, false},
149 test_params{'t', 'n', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_no_offsets, false},
150 test_params{'t', 't', 2, 100, 100, 1.0, 2.0, 100, 100, 100, row_no_offsets, false},
151 test_params{'n', 'n', 2, 2, 10000, 1.0, 2.0, 2, 10000, 2, row_no_offsets, false}
154 INST_TEST_CASE(TestGEMM_fractional_scales_fix_offset,
155 /* alpha and beta have non-zero fractional part */
156 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, fix_use_oc, false},
157 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, fix_use_oc, false},
158 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, fix_use_oc, false},
159 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, fix_use_oc, false},
160 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, fix_use_oc, false},
161 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, fix_use_oc, false},
162 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, fix_use_oc, false},
163 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, fix_use_oc, false},
164 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, fix_use_oc, false},
166 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, fix_use_all_offsets, false},
167 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, fix_use_all_offsets, false},
168 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, fix_use_all_offsets, false},
169 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, fix_use_all_offsets, false},
170 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, fix_use_all_offsets, false},
171 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, fix_use_all_offsets, false},
172 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, fix_use_all_offsets, false},
173 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, fix_use_all_offsets, false},
174 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, fix_use_all_offsets, false},
176 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, fix_no_offsets, false},
177 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, fix_no_offsets, false},
178 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, fix_no_offsets, false},
179 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, fix_no_offsets, false},
180 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, fix_no_offsets, false},
181 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, fix_no_offsets, false},
182 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, fix_no_offsets, false},
183 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, fix_no_offsets, false},
184 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, fix_no_offsets, false}
187 INST_TEST_CASE(TestGEMM_fractional_scales_col_offset,
188 /* alpha and beta have non-zero fractional part */
189 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, col_use_oc, false},
190 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, col_use_oc, false},
191 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, col_use_oc, false},
192 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, col_use_oc, false},
193 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, col_use_oc, false},
194 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, col_use_oc, false},
195 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, col_use_oc, false},
196 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, col_use_oc, false},
197 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, col_use_oc, false},
199 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, col_use_all_offsets, false},
200 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, col_use_all_offsets, false},
201 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, col_use_all_offsets, false},
202 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, col_use_all_offsets, false},
203 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, col_use_all_offsets, false},
204 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, col_use_all_offsets, false},
205 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, col_use_all_offsets, false},
206 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, col_use_all_offsets, false},
207 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, col_use_all_offsets, false},
209 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, col_no_offsets, false},
210 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, col_no_offsets, false},
211 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, col_no_offsets, false},
212 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, col_no_offsets, false},
213 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, col_no_offsets, false},
214 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, col_no_offsets, false},
215 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, col_no_offsets, false},
216 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, col_no_offsets, false},
217 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, col_no_offsets, false}
220 INST_TEST_CASE(TestGEMM_fractional_scales_row_offset,
221 /* alpha and beta have non-zero fractional part */
222 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, row_use_oc, false},
223 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, row_use_oc, false},
224 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, row_use_oc, false},
225 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, row_use_oc, false},
226 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, row_use_oc, false},
227 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, row_use_oc, false},
228 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, row_use_oc, false},
229 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, row_use_oc, false},
230 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, row_use_oc, false},
232 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, row_use_all_offsets, false},
233 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, row_use_all_offsets, false},
234 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, row_use_all_offsets, false},
235 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, row_use_all_offsets, false},
236 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, row_use_all_offsets, false},
237 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, row_use_all_offsets, false},
238 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, row_use_all_offsets, false},
239 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, row_use_all_offsets, false},
240 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, row_use_all_offsets, false},
242 test_params{'n', 'T', 30, 20, 10, 2.33f, 1.66f, 60, 50, 80, row_no_offsets, false},
243 test_params{'n', 'T', 30, 20, 10, 2.19f, 1.99f, 120, 120, 120, row_no_offsets, false},
244 test_params{'T', 'N', 30, 20, 10, 2.01f, 1.01f, 60, 50, 80, row_no_offsets, false},
245 test_params{'t', 't', 30, 20, 10, 2.99f, 1.19f, 60, 50, 80, row_no_offsets, false},
246 test_params{'n', 'n', 100, 100, 2, 1.33f, 2.33f, 100, 100, 100, row_no_offsets, false},
247 test_params{'n', 't', 100, 2, 100, 1.19f, 2.99f, 100, 100, 100, row_no_offsets, false},
248 test_params{'t', 'n', 2, 100, 100, 1.01f, 2.01f, 100, 100, 100, row_no_offsets, false},
249 test_params{'t', 't', 2, 100, 100, 1.99f, 2.19f, 100, 100, 100, row_no_offsets, false},
250 test_params{'n', 'n', 2, 2, 10000, 1.66f, 2.33f, 2, 10000, 2, row_no_offsets, false}
254 INST_TEST_CASE(TestGEMV,
255 test_params{'n', 'n', 2000, 1, 1000, 1.0f, 0.0f, 2000, 1000, 2000, fix_no_offsets, false},
256 test_params{'n', 'n', 1, 3000, 2000, 1.0f, 0.0f, 1, 2000, 1, fix_no_offsets, false},
257 test_params{'t', 'n', 2000, 1, 1000, 1.0f, 0.0f, 2000, 1000, 2000, fix_no_offsets, false},
258 test_params{'t', 'n', 1, 3000, 2000, 1.0f, 0.0f, 2000, 2000, 1, fix_no_offsets, false},
259 test_params{'n', 't', 2000, 1, 1000, 1.0f, 0.0f, 2000, 1, 2000, fix_no_offsets, false},
260 test_params{'n', 't', 1, 3000, 2000, 1.0f, 0.0f, 1, 3000, 1, fix_no_offsets, false},
261 test_params{'t', 't', 2000, 1, 1000, 1.0f, 0.0f, 1000, 1, 2000, fix_no_offsets, false},
262 test_params{'t', 't', 1, 3000, 2000, 1.0f, 0.0f, 2000, 3000, 1, fix_no_offsets, false},
264 test_params{'n', 'n', 2000, 1, 1000, 1.0f, 1.0f, 2000, 1000, 2000, fix_no_offsets, false},
265 test_params{'n', 'n', 1, 3000, 2000, 1.0f, 1.0f, 1, 2000, 1, fix_no_offsets, false},
266 test_params{'t', 'n', 2000, 1, 1000, 1.0f, 1.0f, 2000, 1000, 2000, fix_no_offsets, false},
267 test_params{'t', 'n', 1, 3000, 2000, 1.0f, 1.0f, 2000, 2000, 1, fix_no_offsets, false},
268 test_params{'n', 't', 2000, 1, 1000, 1.0f, 1.0f, 2000, 1, 2000, fix_no_offsets, false},
269 test_params{'n', 't', 1, 3000, 2000, 1.0f, 1.0f, 1, 3000, 1, fix_no_offsets, false},
270 test_params{'t', 't', 2000, 1, 1000, 1.0f, 1.0f, 1000, 1, 2000, fix_no_offsets, false},
271 test_params{'t', 't', 1, 3000, 2000, 1.0f, 1.0f, 2000, 3000, 1, fix_no_offsets, false}
274 INST_TEST_CASE(TestGEMV_kblocking,
275 test_params{'t', 'n', 20, 1, 7000, 1.0f, 0.0f, 7000, 7000, 7000, fix_no_offsets, false},
276 test_params{'t', 't', 50, 1, 7000, 1.0f, 0.0f, 7000, 7000, 7000, fix_no_offsets, false},
277 test_params{'t', 'n', 400, 1, 7000, 1.0f, 0.0f, 7000, 7000, 7000, fix_no_offsets, false},
278 test_params{'t', 't', 500, 1, 7000, 1.0f, 0.0f, 7000, 1, 7000, fix_no_offsets, false},
279 test_params{'t', 'n', 20, 1, 7000, 1.0f, 1.0f, 7000, 7000, 7000, fix_no_offsets, false},
280 test_params{'t', 't', 50, 1, 7000, 1.0f, 1.0f, 7000, 1, 7000, fix_no_offsets, false},
281 test_params{'t', 'n', 500, 1, 7000, 1.0f, 1.0f, 7000, 7000, 7000, fix_no_offsets, false},
282 test_params{'t', 't', 500, 1, 7000, 1.0f, 1.0f, 7000, 7000, 7000, fix_no_offsets, false},
284 test_params{'n', 'n', 1, 40, 7000, 1.0f, 0.0f, 1, 7000, 7000, fix_no_offsets, false},
285 test_params{'t', 'n', 1, 10, 7000, 1.0f, 0.0f, 7000, 7000, 1, fix_no_offsets, false},
286 test_params{'n', 'n', 1, 400, 7000, 1.0f, 0.0f, 7000, 7000, 7000, fix_no_offsets, false},
287 test_params{'t', 'n', 1, 100, 7000, 1.0f, 0.0f, 7000, 7000, 7000, fix_no_offsets, false},
288 test_params{'n', 'n', 1, 40, 7000, 1.0f, 1.0f, 7000, 7000, 7000, fix_no_offsets, false},
289 test_params{'t', 'n', 1, 10, 7000, 1.0f, 1.0f, 7000, 7000, 7000, fix_no_offsets, false},
290 test_params{'n', 'n', 1, 400, 7000, 1.0f, 1.0f, 1, 7000, 7000, fix_no_offsets, false},
291 test_params{'t', 'n', 1, 550, 7000, 1.0f, 1.0f, 7000, 7000, 1, fix_no_offsets, false}
295 INST_TEST_CASE(TestGEMM_heavy,
296 test_params{'n', 'n', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, fix_use_oc, false},
297 test_params{'t', 'n', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, fix_use_oc, false},
298 test_params{'n', 't', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, fix_use_oc, false},
299 test_params{'t', 't', 3000, 3000, 3000, 1.0, 0.0, 3000, 3000, 3000, fix_use_oc, false},
301 test_params{'n', 'n', 3000, 3000, 3000, 2.19f, 1.99f, 3000, 3000, 3000, fix_use_oc, false},
302 test_params{'t', 'n', 3000, 3000, 3000, 2.99f, 1.19f, 3000, 3000, 3000, fix_use_oc, false},
303 test_params{'n', 't', 3000, 3000, 3000, 1.19f, 2.99f, 3000, 3000, 3000, fix_use_oc, false},
304 test_params{'t', 't', 3000, 3000, 3000, 1.99f, 2.19f, 3000, 3000, 3000, fix_use_oc, false}