On 11/30/21 11:51 AM, Qing Zhao wrote: > So, looks like that the variable with OPAQUE_TYPE cannot be all explicitly > initialized even at source code level. > > The only way to initialize such variable (only __vector_quad, not for > __vector_pairs) at source code level is through call to > __builtin_mma_xxsetaccz as: > > void > foo (__vector_quad *dst) > { > __vector_quad acc; > __builtin_mma_xxsetaccz(&acc); > *dst = acc; > } > > Is this the correct understanding?
Correct. Or via... > Is there way to initialize such variable to other values than zero at source > code level? Not for any constant values. You can load it from memory though like below, which is also allowed for __vector_pair: void foo (__vector_quad *dst, __vector_quad *src) { __vector_quad acc; acc = *src; ... } void bar (__vector_pair *dst, __vector_pair *src) { __vector_pair pair; pair = *src; ... } We do not accept things like: acc = 0; acc = {0, 0, ... }; etc. Peter