@@ -199,14 +199,22 @@ status_t prb_init(prb_t &p, const memory_desc_t &imd, const memory_desc_t &omd,
199
199
return po.len () == 0 || (po.len () == 1 && po.entry_ [0 ].is_sum (false ));
200
200
};
201
201
202
- bool ok = im_d.is_blocking_desc () && om_d.is_blocking_desc ()
203
- && !im_d.has_runtime_dims_or_strides () && !im_d.has_zero_dim ()
204
- && !om_d.has_runtime_dims_or_strides () && !om_d.has_zero_dim ()
205
- && attr->has_default_values (primitive_attr_t ::skip_mask_t ::scales
206
- | primitive_attr_t ::skip_mask_t ::zero_points
207
- | primitive_attr_t ::skip_mask_t ::post_ops)
208
- && check_post_ops (attr);
209
- if (!ok) return unimplemented;
202
+ VDISPATCH_REORDER_IC (
203
+ im_d.is_blocking_desc (), VERBOSE_UNSUPPORTED_FORMAT_KIND);
204
+ VDISPATCH_REORDER_IC (
205
+ om_d.is_blocking_desc (), VERBOSE_UNSUPPORTED_FORMAT_KIND);
206
+ VDISPATCH_REORDER_IC (!im_d.has_zero_dim (), VERBOSE_EMPTY_TENSOR, " src" );
207
+ VDISPATCH_REORDER_IC (!om_d.has_zero_dim (), VERBOSE_EMPTY_TENSOR, " dst" );
208
+ VDISPATCH_REORDER_IC (!im_d.has_runtime_dims_or_strides (),
209
+ VERBOSE_RUNTIMEDIM_UNSUPPORTED);
210
+ VDISPATCH_REORDER_IC (!om_d.has_runtime_dims_or_strides (),
211
+ VERBOSE_RUNTIMEDIM_UNSUPPORTED);
212
+
213
+ using smask_t = primitive_attr_t ::skip_mask_t ;
214
+ VDISPATCH_REORDER_IC (attr->has_default_values (smask_t ::scales
215
+ | smask_t ::zero_points | smask_t ::post_ops),
216
+ VERBOSE_UNSUPPORTED_ATTR);
217
+ VDISPATCH_REORDER_IC (check_post_ops (attr), VERBOSE_UNSUPPORTED_POSTOP);
210
218
211
219
bool is_tail_present = false ;
212
220
dims_t iblocks, oblocks, i_tails, o_tails, i_paddings, o_paddings;
@@ -218,7 +226,8 @@ status_t prb_init(prb_t &p, const memory_desc_t &imd, const memory_desc_t &omd,
218
226
const auto pdim = om_d.padded_dims ()[d];
219
227
const auto cblock = oblocks[d];
220
228
// do not allow excess pdim other than required for rounding-up of dim.
221
- if (utils::rnd_up (dim, cblock) != pdim) return unimplemented;
229
+ VDISPATCH_REORDER_IC (
230
+ utils::rnd_up (dim, cblock) == pdim, " Excess padding" );
222
231
}
223
232
224
233
utils::array_set (i_tails, 0 , im_d.ndims ());
@@ -306,10 +315,12 @@ status_t prb_init(prb_t &p, const memory_desc_t &imd, const memory_desc_t &omd,
306
315
return IMPLICATION (check, mask == (with_groups ? 0x3 : 0x1 ));
307
316
};
308
317
309
- if (!mask_ok (p.req_s8s8_comp , om_d.extra ().compensation_mask )
310
- || !mask_ok (p.req_asymmetric_comp ,
311
- om_d.extra ().asymm_compensation_mask ))
312
- return status::unimplemented;
318
+ VDISPATCH_REORDER_IC (
319
+ mask_ok (p.req_s8s8_comp , om_d.extra ().compensation_mask ),
320
+ VERBOSE_UNSUPPORTED_MD_FLAG, " dst" );
321
+ VDISPATCH_REORDER_IC (mask_ok (p.req_asymmetric_comp ,
322
+ om_d.extra ().asymm_compensation_mask ),
323
+ VERBOSE_UNSUPPORTED_MD_FLAG, " dst" );
313
324
314
325
ptrdiff_t ss[max_ndims] = {0 }; // scales strides
315
326
if (p.src_scale_type == scale_type_t ::MANY
0 commit comments