[gcc r16-9294] rs6000: Corrections for the AES builtins for powerpc
Avinash Jayakar
avinashd@gcc.gnu.org
Wed Jul 15 06:29:54 GMT 2026
https://gcc.gnu.org/g:7494f309a63aec6729e240be27d8ec5ffa755614
commit r16-9294-g7494f309a63aec6729e240be27d8ec5ffa755614
Author: Avinash Jayakar <avinashd@linux.ibm.com>
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 <avinashd@linux.ibm.com>
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
More information about the Gcc-cvs
mailing list