@@ -170,6 +170,28 @@ class convolution_backward_weights_test
170
170
p.formats .weights_format , p.aalgorithm )),
171
171
" Format is not supported." );
172
172
173
+ SKIP_IF_GENERIC (
174
+ !(generic_check_format_tags (p.formats .src_format )
175
+ && generic_check_format_tags (p.formats .dst_format )
176
+ && (generic_check_format_tags (p.formats .weights_format )
177
+ || (impl::utils::one_of (
178
+ p.formats .weights_format ,
179
+ memory::format_tag::goiw,
180
+ memory::format_tag::goihw,
181
+ memory::format_tag::goidhw,
182
+ memory::format_tag::oiw,
183
+ memory::format_tag::oihw,
184
+ memory::format_tag::oidhw,
185
+ memory::format_tag::bacd,
186
+ memory::format_tag::bcda,
187
+ memory::format_tag::acbde,
188
+ memory::format_tag::iohw,
189
+ memory::format_tag::hwigo)))
190
+ && check_generic_dt<data_t_src>()
191
+ && check_generic_dt<data_t_diff_dst>()
192
+ && check_generic_dt<data_t_diff_weights>()),
193
+ " Format is not supported." );
194
+
173
195
catch_expected_failures (
174
196
[&]() { Test (); }, p.expect_to_fail , p.expected_status );
175
197
}
@@ -214,6 +236,22 @@ class convolution_backward_weights_test
214
236
return res;
215
237
}
216
238
239
+ bool generic_check_format_tags (memory::format_tag tag) {
240
+ return impl::utils::one_of (tag, memory::format_tag::ab,
241
+ memory::format_tag::abc, memory::format_tag::abcd,
242
+ memory::format_tag::abcde, memory::format_tag::abcdef,
243
+ memory::format_tag::acb, memory::format_tag::acdb,
244
+ memory::format_tag::acdeb, memory::format_tag::any);
245
+ }
246
+
247
+ template <typename dt>
248
+ bool check_generic_dt () {
249
+ return impl::utils::one_of (data_traits<dt>::data_type,
250
+ memory::data_type::f32, memory::data_type::bf16,
251
+ memory::data_type::f16, memory::data_type::s32,
252
+ memory::data_type::s8, memory::data_type::u8);
253
+ }
254
+
217
255
void Test () {
218
256
auto p = ::testing::TestWithParam<
219
257
test_convolution_params_t >::GetParam ();
0 commit comments