Ping!

Please review. Are there any more changes required?

Thanks & Regards
Jeevitha

On 21/05/24 10:28 am, jeevitha wrote:
> Ping!
> 
> please review.
> 
> Thanks & Regards
> Jeevitha
> 
> 
> On 17/04/24 2:44 pm, jeevitha wrote:
>> Ping!
>>
>> I've incorporated all the suggested changes. Please review.
>>
>> Thanks & Regards
>> Jeevitha
>>
>> On 21/03/24 6:21 pm, jeevitha wrote:
>>> Hi All,
>>>
>>> The following patch has been bootstrapped and regtested on 
>>> powerpc64le-linux.
>>>
>>> PTImode assists in generating even/odd register pairs on 128 bits. When the 
>>> user 
>>> specifies PTImode as an attribute, it breaks because there is no internal 
>>> type 
>>> to handle this mode. To address this, we have created a tree node with 
>>> dummy type
>>> to handle PTImode. We are not documenting this dummy type since users are 
>>> not
>>> allowed to use this type externally.
>>>
>>> 2024-03-21  Jeevitha Palanisamy  <jeevi...@linux.ibm.com>
>>>
>>> gcc/
>>>     PR target/110411
>>>     * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
>>>     RS6000_BTI_INTPTI.
>>>     * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Add node
>>>     for PTImode type.
>>>
>>> gcc/testsuite/
>>>     PR target/106895
>>>     * gcc.target/powerpc/pr106895.c: New testcase.
>>>
>>> diff --git a/gcc/config/rs6000/rs6000-builtin.cc 
>>> b/gcc/config/rs6000/rs6000-builtin.cc
>>> index 6698274031b..f553c72779e 100644
>>> --- a/gcc/config/rs6000/rs6000-builtin.cc
>>> +++ b/gcc/config/rs6000/rs6000-builtin.cc
>>> @@ -756,6 +756,15 @@ rs6000_init_builtins (void)
>>>    else
>>>      ieee128_float_type_node = NULL_TREE;
>>>  
>>> +  /* PTImode to get even/odd register pairs.  */
>>> +  intPTI_type_internal_node = make_node(INTEGER_TYPE);
>>> +  TYPE_PRECISION (intPTI_type_internal_node) = GET_MODE_BITSIZE (PTImode);
>>> +  layout_type (intPTI_type_internal_node);
>>> +  SET_TYPE_MODE (intPTI_type_internal_node, PTImode);
>>> +  t = build_qualified_type (intPTI_type_internal_node, TYPE_QUAL_CONST);
>>> +  lang_hooks.types.register_builtin_type (intPTI_type_internal_node,
>>> +                                     "__dummypti");
>>> +
>>>    /* Vector pair and vector quad support.  */
>>>    vector_pair_type_node = make_node (OPAQUE_TYPE);
>>>    SET_TYPE_MODE (vector_pair_type_node, OOmode);
>>> diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
>>> index 68bc45d65ba..b6078077b20 100644
>>> --- a/gcc/config/rs6000/rs6000.h
>>> +++ b/gcc/config/rs6000/rs6000.h
>>> @@ -2302,6 +2302,7 @@ enum rs6000_builtin_type_index
>>>    RS6000_BTI_ptr_vector_quad,
>>>    RS6000_BTI_ptr_long_long,
>>>    RS6000_BTI_ptr_long_long_unsigned,
>>> +  RS6000_BTI_INTPTI,
>>>    RS6000_BTI_MAX
>>>  };
>>>  
>>> @@ -2346,6 +2347,7 @@ enum rs6000_builtin_type_index
>>>  #define uintDI_type_internal_node   
>>> (rs6000_builtin_types[RS6000_BTI_UINTDI])
>>>  #define intTI_type_internal_node    
>>> (rs6000_builtin_types[RS6000_BTI_INTTI])
>>>  #define uintTI_type_internal_node   
>>> (rs6000_builtin_types[RS6000_BTI_UINTTI])
>>> +#define intPTI_type_internal_node   
>>> (rs6000_builtin_types[RS6000_BTI_INTPTI])
>>>  #define float_type_internal_node    
>>> (rs6000_builtin_types[RS6000_BTI_float])
>>>  #define double_type_internal_node   
>>> (rs6000_builtin_types[RS6000_BTI_double])
>>>  #define long_double_type_internal_node      
>>> (rs6000_builtin_types[RS6000_BTI_long_double])
>>> diff --git a/gcc/testsuite/gcc.target/powerpc/pr106895.c 
>>> b/gcc/testsuite/gcc.target/powerpc/pr106895.c
>>> new file mode 100644
>>> index 00000000000..56547b7fa9d
>>> --- /dev/null
>>> +++ b/gcc/testsuite/gcc.target/powerpc/pr106895.c
>>> @@ -0,0 +1,15 @@
>>> +/* PR target/106895 */
>>> +/* { dg-require-effective-target int128 } */
>>> +/* { dg-options "-O2" } */
>>> +
>>> +/* Verify the following generates even/odd register pairs.  */
>>> +
>>> +typedef __int128 pti __attribute__((mode(PTI)));
>>> +
>>> +void
>>> +set128 (pti val, pti *mem)
>>> +{
>>> +    asm("stq %1,%0" : "=m"(*mem) : "r"(val));
>>> +}
>>> +
>>> +/* { dg-final { scan-assembler "stq \[123\]?\[02468\]" } } */
>>>
>>>

Reply via email to