diff mbox series

rs6000: Add missing unsigned info for some P10 bifs

Message ID 2443095b-ee85-3120-277a-66b112fa58b9@linux.ibm.com
State New
Headers show
Series rs6000: Add missing unsigned info for some P10 bifs | expand

Commit Message

Kewen.Lin Aug. 11, 2021, 5:44 a.m. UTC
Hi,

This patch is to make prototypes of some Power10 built-in
functions consistent with what's in the documentation, as
well as the vector version.  Otherwise, useless conversions
can be generated in gimple IR, and the vectorized versions
will have inconsistent types.

Bootstrapped & regtested on powerpc64le-linux-gnu P9 and
powerpc64-linux-gnu P8.

Is it ok for trunk?

BR,
Kewen
-----
gcc/ChangeLog:

	* config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned
	signedness for some Power10 bifs.
---
 gcc/config/rs6000/rs6000-call.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Li, Pan2 via Gcc-patches Aug. 11, 2021, 4:24 p.m. UTC | #1
Hi Kewen,

On 8/11/21 12:44 AM, Kewen.Lin wrote:
> Hi,
>
> This patch is to make prototypes of some Power10 built-in
> functions consistent with what's in the documentation, as
> well as the vector version.  Otherwise, useless conversions
> can be generated in gimple IR, and the vectorized versions
> will have inconsistent types.
>
> Bootstrapped & regtested on powerpc64le-linux-gnu P9 and
> powerpc64-linux-gnu P8.
>
> Is it ok for trunk?

LGTM.  Maintainers, this is necessary in the short term for the old 
builtins support, but this fragile thing that people always forget will 
go away with the new support.  What Kewen is proposing here is correct 
for now.

Thanks,
Bill

>
> BR,
> Kewen
> -----
> gcc/ChangeLog:
>
> 	* config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned
> 	signedness for some Power10 bifs.
Kewen.Lin Aug. 13, 2021, 1:41 a.m. UTC | #2
Hi Bill,

on 2021/8/12 上午12:24, Bill Schmidt wrote:
> Hi Kewen,
> 
> On 8/11/21 12:44 AM, Kewen.Lin wrote:
>> Hi,
>>
>> This patch is to make prototypes of some Power10 built-in
>> functions consistent with what's in the documentation, as
>> well as the vector version.  Otherwise, useless conversions
>> can be generated in gimple IR, and the vectorized versions
>> will have inconsistent types.
>>
>> Bootstrapped & regtested on powerpc64le-linux-gnu P9 and
>> powerpc64-linux-gnu P8.
>>
>> Is it ok for trunk?
> 
> LGTM.  Maintainers, this is necessary in the short term for the old builtins support, but this fragile thing that people always forget will go away with the new support.  What Kewen is proposing here is correct for now.
> 

Thanks for your review and good to know we won't have this kind of issue with your new support, nice!!

FWIW, for now the bif vectorization still requires this type consistence to make type check happy.


BR,
Kewen

> Thanks,
> Bill
> 
>>
>> BR,
>> Kewen
>> -----
>> gcc/ChangeLog:
>>
>>     * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned
>>     signedness for some Power10 bifs.
Kewen.Lin Aug. 30, 2021, 2:24 a.m. UTC | #3
on 2021/8/11 下午1:44, Kewen.Lin via Gcc-patches wrote:
> Hi,
> 
> This patch is to make prototypes of some Power10 built-in
> functions consistent with what's in the documentation, as
> well as the vector version.  Otherwise, useless conversions
> can be generated in gimple IR, and the vectorized versions
> will have inconsistent types.
> 
> Bootstrapped & regtested on powerpc64le-linux-gnu P9 and
> powerpc64-linux-gnu P8.
> 
> Is it ok for trunk?
> 

This has been approved by Segher offline, thanks Segher!

Committed in r12-3179.

BR,
Kewen

> BR,
> Kewen
> -----
> gcc/ChangeLog:
> 
> 	* config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned
> 	signedness for some Power10 bifs.
>
diff mbox series

Patch

diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 904e104c058..b92928c891a 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -14674,6 +14674,11 @@  builtin_function_type (machine_mode mode_ret, machine_mode mode_arg0,
     case P8V_BUILTIN_ORC_V4SI_UNS:
     case P8V_BUILTIN_ORC_V2DI_UNS:
     case P8V_BUILTIN_ORC_V1TI_UNS:
+    case P10_BUILTIN_CFUGED:
+    case P10_BUILTIN_CNTLZDM:
+    case P10_BUILTIN_CNTTZDM:
+    case P10_BUILTIN_PDEPD:
+    case P10_BUILTIN_PEXTD:
     case P10V_BUILTIN_VCFUGED:
     case P10V_BUILTIN_VCLZDM:
     case P10V_BUILTIN_VCTZDM: