[gcc r16-9294] rs6000: Corrections for the AES builtins for powerpc

Avinash Jayakar via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:7494f309a63aec6729e240be27d8ec5ffa755614

commit r16-9294-g7494f309a63aec6729e240be27d8ec5ffa755614
Author: Avinash Jayakar <[email protected]>
Date:   Thu Jul 9 13:45:30 2026 +0530

    rs6000: Corrections for the AES builtins for powerpc
    
    This patch fixes few implementations issues for the AES builtins in
    powerpc in documentation, testcases and builtin definition.
    
    2026-07-09  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.
    
    (cherry picked from commit 26ef750bfe4e247966caf2b3f205e5bec9d7babd)

Diff:
---
 gcc/config/rs6000/rs6000-builtins.def            | 91 ++++++++++++------------
 gcc/doc/extend.texi                              |  2 +
 gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c |  2 +
 gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c |  2 +
 gcc/testsuite/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 832aa1b2c45f..85486c70f0d7 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -3942,52 +3942,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 {}
@@ -4072,6 +4026,51 @@
   const vsc __builtin_altivec_unpack_lsn_to_byte (vull);
     VUPKLSNTOB altivec_vupklsntob {}
 
+  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-altivec]
   const vus __builtin_altivec_uncompresshn (vuc, vui);
     VUCMPRHN altivec_vucmprhn {}
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 35b130ff2a91..046fe04459e5 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -26858,6 +26858,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 (AES) Acceleration Built-in Functions
+
 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 2777fcdc7ae2..729ae1ef26db 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 98f16ad0fe8e..a509f760cd65 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 007bf878afb2..bbed43a1e8c3 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.