Hi,

On 01/07/26 8:19 PM, Surya Kumari Jangala wrote:
> Hi,
> 
> On 26/06/26 9:34 AM, Avinash Jayakar wrote:
>> From: Avinash Jayakar <[email protected]>
>>
>> Hi,
>>
>> Addressed the comments in
>> https://gcc.gnu.org/pipermail/gcc-patches/2026-June/720748.html
>>
>> Bootstrapped and regtested on powerpc64le-linux with no regressions. Ok
>> for trunk?
>>
>> Changes from v1:
>> - Update commit header and message
>> - Add subheading to AES documentation
>> - Move AES builtins to future-vsx stanza
>>
>> Thanks,
>> Avinash Jayakar
>>
>> This patch fixes few implementations issues for the AES builtins in
>> powerpc in documentation, testcases and builtin definition.
>>
>> 2026-06-26  Avinash Jayakar  <[email protected]>
>>
>> gcc/ChangeLog:
>>      * config/rs6000/rs6000-builtins.def: Move AES builtins to future-vsx
>>      stanza.
>>      * doc/extend.texi: Add subheading for AES builtins.
>>
>> gcc/testsuite/ChangeLog:
>>      * gcc.target/powerpc/aes-builtin-1.c: Add future_compile_ok and lp64
>>      testsuite directive.
>>      * gcc.target/powerpc/aes-builtin-2.c: Add future_compile_ok and lp64
>>      testsuite directive.
>>      * gcc.target/powerpc/aes-builtin-3.c: Add future_compile_ok and lp64
>>      testsuite directive.
>> ---
>>  gcc/config/rs6000/rs6000-builtins.def         | 91 +++++++++----------
>>  gcc/doc/extend.texi                           |  2 +
>>  .../gcc.target/powerpc/aes-builtin-1.c        |  2 +
>>  .../gcc.target/powerpc/aes-builtin-2.c        |  2 +
>>  .../gcc.target/powerpc/aes-builtin-3.c        |  2 +
>>  5 files changed, 53 insertions(+), 46 deletions(-)
>>
>> diff --git a/gcc/config/rs6000/rs6000-builtins.def 
>> b/gcc/config/rs6000/rs6000-builtins.def
>> index 172a97adaa8..d2b2f0d5527 100644
>> --- a/gcc/config/rs6000/rs6000-builtins.def
>> +++ b/gcc/config/rs6000/rs6000-builtins.def
>> @@ -3925,52 +3925,6 @@
>>    void __builtin_vsx_stxvp (v256, unsigned long, const v256 *);
>>      STXVP nothing {mma,pair}
>>  
>> -[future]
>> -  const v256 __builtin_aes_encrypt_paired (v256, v256, const int<2>);
>> -    XXAESENCP xxaesencp {}
>> -
>> -  const v256 __builtin_aes128_encrypt_paired (v256, v256);
>> -    XXAES128ENCP xxaes128encp {}
>> -
>> -  const v256 __builtin_aes192_encrypt_paired (v256, v256);
>> -    XXAES192ENCP xxaes192encp {}
>> -
>> -  const v256 __builtin_aes256_encrypt_paired (v256, v256);
>> -    XXAES256ENCP xxaes256encp {}
>> -
>> -  const v256 __builtin_aes_decrypt_paired (v256, v256, const int<2>);
>> -    XXAESDECP xxaesdecp {}
>> -
>> -  const v256 __builtin_aes128_decrypt_paired (v256, v256);
>> -    XXAES128DECP xxaes128decp {}
>> -
>> -  const v256 __builtin_aes192_decrypt_paired (v256, v256);
>> -    XXAES192DECP xxaes192decp {}
>> -
>> -  const v256 __builtin_aes256_decrypt_paired (v256, v256);
>> -    XXAES256DECP xxaes256decp {}
>> -
>> -  const v256 __builtin_aes_genlastkey_paired (v256, const int<2>);
>> -    XXAESGENLKP xxaesgenlkp {}
>> -
>> -  const v256 __builtin_aes128_genlastkey_paired (v256);
>> -    XXAES128GENLKP xxaes128genlkp {}
>> -
>> -  const v256 __builtin_aes192_genlastkey_paired (v256);
>> -    XXAES192GENLKP xxaes192genlkp {}
>> -
>> -  const v256 __builtin_aes256_genlastkey_paired (v256);
>> -    XXAES256GENLKP xxaes256genlkp {}
>> -
>> -  const vuc __builtin_galois_field_mult (vuc, vuc, const int<1>);
>> -    XXGFMUL128 xxgfmul128 {}
>> -
>> -  const vuc __builtin_galois_field_mult_gcm (vuc, vuc);
>> -    XXGFMUL128GCM xxgfmul128gcm {}
>> -
>> -  const vuc __builtin_galois_field_mult_xts (vuc, vuc);
>> -    XXGFMUL128XTS xxgfmul128xts {}
>> -
>>  [future-vsx]
>>    const vus __builtin_vsx_xvmulhuh (vus, vus);
>>      XVMULHUH umulv8hi3_highpart {}
>> @@ -4042,3 +3996,48 @@
>>  
>>    const vuq __builtin_vsx_xsrebase3t3uqm (vuq, vuq, vuq);
>>      XSREBASE3T3UQM vsx_xsrebase3t3uqm {}
>> +
>> +  const v256 __builtin_aes_encrypt_paired (v256, v256, const int<2>);
>> +    XXAESENCP xxaesencp {}
>> +
>> +  const v256 __builtin_aes128_encrypt_paired (v256, v256);
>> +    XXAES128ENCP xxaes128encp {}
>> +
>> +  const v256 __builtin_aes192_encrypt_paired (v256, v256);
>> +    XXAES192ENCP xxaes192encp {}
>> +
>> +  const v256 __builtin_aes256_encrypt_paired (v256, v256);
>> +    XXAES256ENCP xxaes256encp {}
>> +
>> +  const v256 __builtin_aes_decrypt_paired (v256, v256, const int<2>);
>> +    XXAESDECP xxaesdecp {}
>> +
>> +  const v256 __builtin_aes128_decrypt_paired (v256, v256);
>> +    XXAES128DECP xxaes128decp {}
>> +
>> +  const v256 __builtin_aes192_decrypt_paired (v256, v256);
>> +    XXAES192DECP xxaes192decp {}
>> +
>> +  const v256 __builtin_aes256_decrypt_paired (v256, v256);
>> +    XXAES256DECP xxaes256decp {}
>> +
>> +  const v256 __builtin_aes_genlastkey_paired (v256, const int<2>);
>> +    XXAESGENLKP xxaesgenlkp {}
>> +
>> +  const v256 __builtin_aes128_genlastkey_paired (v256);
>> +    XXAES128GENLKP xxaes128genlkp {}
>> +
>> +  const v256 __builtin_aes192_genlastkey_paired (v256);
>> +    XXAES192GENLKP xxaes192genlkp {}
>> +
>> +  const v256 __builtin_aes256_genlastkey_paired (v256);
>> +    XXAES256GENLKP xxaes256genlkp {}
>> +
>> +  const vuc __builtin_galois_field_mult (vuc, vuc, const int<1>);
>> +    XXGFMUL128 xxgfmul128 {}
>> +
>> +  const vuc __builtin_galois_field_mult_gcm (vuc, vuc);
>> +    XXGFMUL128GCM xxgfmul128gcm {}
>> +
>> +  const vuc __builtin_galois_field_mult_xts (vuc, vuc);
>> +    XXGFMUL128XTS xxgfmul128xts {}
>> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
>> index 7bd84e6d8cc..6ad18fe9073 100644
>> --- a/gcc/doc/extend.texi
>> +++ b/gcc/doc/extend.texi
>> @@ -26967,6 +26967,8 @@ vector unsigned char);
>>  The following additional built-in functions are available for the
>>  PowerPC family of processors, starting with Future ISA.
>>  
>> +@subsubheading PowerPC Advanced Encryption Standard Assist Built-in 
>> Functions
> 
> Instead of "Assist", please use "Acceleration".
> 
> Other than this, the patch is fine. I cannot approve it though.

Actually, can you write the subheading as:

PowerPC Advanced Encryption Standard (AES) Acceleration Built-in Functions

-Surya

> 
> -Surya
> 
> 
>> +
>>  Future ISA of the PowerPC may add new instructions for accelerating AES
>>  algorithm. GCC provides support for these new instructions through the
>>  following built-in functions. The third argument to
>> diff --git a/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c 
>> b/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
>> index 2777fcdc7ae..729ae1ef26d 100644
>> --- a/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
>> +++ b/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
>> @@ -1,4 +1,6 @@
>>  /* { dg-do compile } */
>> +/* { dg-require-effective-target powerpc_future_compile_ok } */
>> +/* { dg-require-effective-target lp64 } */
>>  /* { dg-options "-mdejagnu-cpu=future -O2" } */
>>  
>>  void
>> diff --git a/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c 
>> b/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
>> index 98f16ad0fe8..a509f760cd6 100644
>> --- a/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
>> +++ b/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
>> @@ -1,4 +1,6 @@
>>  /* { dg-do compile } */
>> +/* { dg-require-effective-target powerpc_future_compile_ok } */
>> +/* { dg-require-effective-target lp64 } */
>>  /* { dg-options "-mdejagnu-cpu=future -O2" } */
>>  
>>  typedef unsigned char vec_t __attribute__((vector_size(16)));
>> diff --git a/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c 
>> b/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
>> index 007bf878afb..bbed43a1e8c 100644
>> --- a/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
>> +++ b/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
>> @@ -1,4 +1,6 @@
>>  /* { dg-do compile } */
>> +/* { dg-require-effective-target powerpc_future_compile_ok } */
>> +/* { dg-require-effective-target lp64 } */
>>  /* { dg-options "-mdejagnu-cpu=future -O2" } */
>>  
>>  void
> 

Reply via email to