> On Dec 1, 2021, at 3:01 AM, Richard Biener <richard.guent...@gmail.com> wrote:
> 
> On Tue, Nov 30, 2021 at 11:35 PM Peter Bergner <berg...@linux.ibm.com> wrote:
>> 
>> On 11/30/21 2:44 PM, Qing Zhao via Gcc-patches wrote:
>>> Sorry for the confusing…
>>> My major question is:
>>> 
>>> for a variable of type __vector_pair,  could it be in a register?
>> 
>> Yes.  To be pedantic, it will live in a vector register pair.
>> 
>> 
>>> If it could be in a register, can we initialize this register with some 
>>> constant value?
>> 
>> For a __vector_pair, no, not as it is setup now.  We also do not have a
>> use case where we would want to initialize a __vector_pair to a constant.
>> Our normal (only?) use case with a __vector_pair is to load it up with
>> some actual data from memory that represents a (partial) row of a matrix.
>> 
>> For __vector_quad, it too lives in a register (accumulator register) and
>> represents a small matrix.  We have the __builtin_mma_xxsetaccz (&acc)
>> builtin to initialize it to a zero constant.
> 
> Given all this I suggest to exempt OPAQUE_TYPE from is_var_need_auto_init
> instead of fixing up things at expansion time.

Agreed. 

So, Peter, will you update the routine “is_var_need_auto_init” in gimplify.c to 
exclude OPAQUE_TYPE to fix this issue?

thanks.

Qing
> 
> Richard.
> 
>> Peter

Reply via email to