A gentle reminder for the review of this patch.

Thanks,

Manjunath S Matti.

On 11/12/25 2:57 pm, Manjunath S Matti wrote:
This patch differentiates the built-ins under stanza power8-vector
into power8-altivec and power8-vsx. It modifies the target test-
case accordingly.

gcc/ChangeLog:

        * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported) : Add
        builtin function supported for the target TARGET_POWER8 && 
TARGET_ALTIVEC.
        (rs6000_invalid_builtin) : Validate appropriate target options being 
set.
        * config/rs6000/rs6000-builtins.def : Split power8-vector stanza into
        power8-altivec and power8-vsx.
        * config/rs6000/rs6000-gen-builtins.cc (bif_stanza) : Add entry
        for BSTZ_P8A.
        (stanza_entry) : Added "power8-altivec" and "power8-vsx".
        (enable_string) : Add ENB_P8A.

gcc/testsuite/ChangeLog:

        * gcc.target/powerpc/pragma_misc9.c : Modify the testcase
        accordingly, now check for -maltivec instead of -mvsx.
---
  gcc/config/rs6000/rs6000-builtin.cc             | 6 ++++++
  gcc/config/rs6000/rs6000-builtins.def           | 7 +++++--
  gcc/config/rs6000/rs6000-gen-builtins.cc        | 6 +++++-
  gcc/testsuite/gcc.target/powerpc/pragma_misc9.c | 2 +-
  4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-builtin.cc 
b/gcc/config/rs6000/rs6000-builtin.cc
index 9fe05b97f41..df25c39fdc0 100644
--- a/gcc/config/rs6000/rs6000-builtin.cc
+++ b/gcc/config/rs6000/rs6000-builtin.cc
@@ -102,6 +102,10 @@ rs6000_invalid_builtin (enum rs6000_gen_builtins fncode)
      case ENB_P8:
        error ("%qs requires the %qs option", name, "-mcpu=power8");
        break;
+    case ENB_P8A:
+      error ("%qs requires the %qs and %qs options", name, "-mcpu=power8",
+            "-maltivec");
+      break;
      case ENB_P8V:
        error ("%qs requires the %qs and %qs options", name, "-mcpu=power8",
             "-mvsx");
@@ -166,6 +170,8 @@ rs6000_builtin_is_supported (enum rs6000_gen_builtins 
fncode)
        return TARGET_POPCNTD && TARGET_POWERPC64;
      case ENB_P8:
        return TARGET_POWER8;
+    case ENB_P8A:
+      return TARGET_POWER8 && TARGET_ALTIVEC;
      case ENB_P8V:
        return TARGET_POWER8 && TARGET_VSX;
      case ENB_P9:
diff --git a/gcc/config/rs6000/rs6000-builtins.def 
b/gcc/config/rs6000/rs6000-builtins.def
index 555d7d58950..5bdb89230f2 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -1853,8 +1853,8 @@
      DIVDEU diveu_di {}
-; Power8 vector built-ins.
-[power8-vector]
+; Power8 altivec built-ins.
+[power8-altivec]
    const vsll __builtin_altivec_abs_v2di (vsll);
      ABS_V2DI absv2di2 {}
@@ -2251,6 +2251,9 @@
    const vui __builtin_crypto_vpmsumw (vui, vui);
      VPMSUMW crypto_vpmsumw {}
+
+; Power8 vector built-ins.
+[power8-vsx]
    const vf __builtin_vsx_float2_v2df (vd, vd);
      FLOAT2_V2DF float2_v2df {}
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.cc b/gcc/config/rs6000/rs6000-gen-builtins.cc
index f77087e0452..9128f3b3b38 100644
--- a/gcc/config/rs6000/rs6000-gen-builtins.cc
+++ b/gcc/config/rs6000/rs6000-gen-builtins.cc
@@ -221,6 +221,7 @@ enum bif_stanza
   BSTZ_P7,
   BSTZ_P7_64,
   BSTZ_P8,
+ BSTZ_P8A,
   BSTZ_P8V,
   BSTZ_P9,
   BSTZ_P9_64,
@@ -255,7 +256,8 @@ static stanza_entry stanza_map[NUMBIFSTANZAS] =
      { "power7",             BSTZ_P7         },
      { "power7-64",  BSTZ_P7_64      },
      { "power8",             BSTZ_P8         },
-    { "power8-vector",       BSTZ_P8V        },
+    { "power8-altivec",      BSTZ_P8A        },
+    { "power8-vsx",  BSTZ_P8V        },
      { "power9",             BSTZ_P9         },
      { "power9-64",  BSTZ_P9_64      },
      { "power9-vector",      BSTZ_P9V        },
@@ -280,6 +282,7 @@ static const char *enable_string[NUMBIFSTANZAS] =
      "ENB_P7",
      "ENB_P7_64",
      "ENB_P8",
+    "ENB_P8A",
      "ENB_P8V",
      "ENB_P9",
      "ENB_P9_64",
@@ -2239,6 +2242,7 @@ write_decls (void)
    fprintf (header_file, "  ENB_P7,\n");
    fprintf (header_file, "  ENB_P7_64,\n");
    fprintf (header_file, "  ENB_P8,\n");
+  fprintf (header_file, "  ENB_P8A,\n");
    fprintf (header_file, "  ENB_P8V,\n");
    fprintf (header_file, "  ENB_P9,\n");
    fprintf (header_file, "  ENB_P9_64,\n");
diff --git a/gcc/testsuite/gcc.target/powerpc/pragma_misc9.c 
b/gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
index 03e4bf0b31a..e2c59585f47 100644
--- a/gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
+++ b/gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
@@ -28,7 +28,7 @@ vector signed int
  test3 (vector signed int a, vector signed int b)
  {
    return vec_mergee (a, b);
-  /* { dg-error "'__builtin_altivec_vmrgew_v4si' requires the '-mcpu=power8' and '-mvsx' 
options" "" { target *-*-* } .-1 } */
+  /* { dg-error "'__builtin_altivec_vmrgew_v4si' requires the '-mcpu=power8' and '-maltivec' 
options" "" { target *-*-* } .-1 } */
  }
#pragma GCC target ("cpu=power6")

Reply via email to