aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2025-01-16 10:49:45 -0600
committerPeter Bergner <bergner@linux.ibm.com>2025-01-16 10:50:12 -0600
commit1a2d63a78f99b7fdc2eff5bf9065682d5bbbaaca (patch)
treedf01a1ce71dff2fe87717795fc57763d5e2e8520
parent3191d7404bb9c2f53554d7c7f50dfb73b5a78726 (diff)
downloadgcc-1a2d63a78f99b7fdc2eff5bf9065682d5bbbaaca.zip
gcc-1a2d63a78f99b7fdc2eff5bf9065682d5bbbaaca.tar.gz
gcc-1a2d63a78f99b7fdc2eff5bf9065682d5bbbaaca.tar.bz2
rs6000: Fix loop limit for built-in constant checking
The loop checking for built-in constant operand restrictions was missing some operands due to the loop limit being too small. Fixing that exposed a testsuite failure which is caused by a typo in the pmxvi4ger8pp definition where we had made the PMASK field too small. 2025-01-16 Peter Bergner <bergner@linux.ibm.com> gcc/ * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct array size for the loop limit. * config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand.
-rw-r--r--gcc/config/rs6000/rs6000-builtin.cc2
-rw-r--r--gcc/config/rs6000/rs6000-builtins.def4
2 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000-builtin.cc b/gcc/config/rs6000/rs6000-builtin.cc
index bdf2fa0..0251a24 100644
--- a/gcc/config/rs6000/rs6000-builtin.cc
+++ b/gcc/config/rs6000/rs6000-builtin.cc
@@ -3441,7 +3441,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
}
/* Check for restricted constant arguments. */
- for (int i = 0; i < 2; i++)
+ for (size_t i = 0; i < ARRAY_SIZE (bifaddr->restr); i++)
{
switch (bifaddr->restr[i])
{
diff --git a/gcc/config/rs6000/rs6000-builtins.def b/gcc/config/rs6000/rs6000-builtins.def
index 320049d..3ca6373 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -3687,11 +3687,11 @@
PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma}
void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \
- const int<4>, const int<4>);
+ const int<4>, const int<8>);
PMXVI4GER8PP nothing {mma,quad,mmaint}
v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \
- const int<4>, const int<4>);
+ const int<4>, const int<8>);
PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad}
void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \