diff mbox series

[3/8] rs6000: Convert <x> built-in constraints to <x,y> form

Message ID a6624bf584b18ec4e38748e99cc9195eb191fdb7.1643390744.git.wschmidt@linux.ibm.com
State New
Headers show
Series rs6000: Built-in function cleanups and bug fixes | expand

Commit Message

Bill Schmidt Jan. 28, 2022, 5:50 p.m. UTC
When introducing the new built-in support, I tried to match as many
existing error messages as possible.  One common form was "argument X must
be a Y-bit unsigned literal".  Another was "argument X must be a literal
between X' and  Y', inclusive".  During reviews, Segher requested that I
eventually convert all messages of the first form into the second form for
consistency.  That's what this patch does, replacing all <x>-form
constraints (first form) with <x,y>-form constraints (second form).

For the moment, the parser will still accept <x> arguments, but I've added
a note in rs6000-builtins.def that this form is deprecated in favor of
<x,y>.  I think it's harmless to leave it in, in case a desire for the
distinction comes up in the future.

Bootstrapped and tested on powerpc64le-linux-gnu with no regressions.
Is this okay for trunk?

Thanks,
Bill


2022-01-12  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
	* config/rs6000/rs6000-builtins.def (MTFSB0): Replace <x>-form
	constraints with <x,y>-form constraints.
	(MTFSB1): Likewise.
	(MTFSF): Likewise.
	(UNPACK_IF): Likewise.
	(UNPACK_TF): Likewise.
	(DSS): Likewise.
	(DST): Likewise.
	(DSTST): Likewise.
	(DSTSTT): Likewise.
	(DSTT): Likewise.
	(VCFSX): Likewise.
	(VCFUX): Likewise.
	(VCTSXS): Likewise.
	(VCTUXS): Likewise.
	(VSLDOI_16QI): Likewise.
	(VSLDOI_4SF): Likewise.
	(VSLDOI_4SI): Likewise.
	(VSLDOI_8HI): Likewise.
	(VSPLTB): Likewise.
	(VSPLTH): Likewise.
	(VSPLTW): Likewise.
	(VEC_SET_V16QI): Likewise.
	(VEC_SET_V4SF): Likewise.
	(VEC_SET_V4SI): Likewise.
	(VEC_SET_V8HI): Likewise.
	(VSLDOI_2DF): Likewise.
	(VSLDOI_2DI): Likewise.
	(VEC_SET_V2DF): Likewise.
	(VEC_SET_V2DI): Likewise.
	(XVCVSXDDP_SCALE): Likewise.
	(XVCVUXDDP_SCALE): Likewise.
	(XXPERMDI_16QI): Likewise.
	(XXPERMDI_1TI): Likewise.
	(XXPERMDI_2DF): Likewise.
	(XXPERMDI_2DI): Likewise.
	(XXPERMDI_4SF): Likewise.
	(XXPERMDI_4SI): Likewise.
	(XXPERMDI_8HI): Likewise.
	(XXSLDWI_16QI): Likewise.
	(XXSLDWI_2DF): Likewise.
	(XXSLDWI_2DI): Likewise.
	(XXSLDWI_4SF): Likewise.
	(XXSLDWI_4SI): Likewise.
	(XXSLDWI_8HI): Likewise.
	(XXSPLTD_V2DF): Likewise.
	(XXSPLTD_V2DI): Likewise.
	(UNPACK_V1TI): Likewise.
	(BCDADD_V1TI): Likewise.
	(BCDADD_V16QI): Likewise.
	(BCDADD_EQ_V1TI): Likewise.
	(BCDADD_EQ_V16QI): Likewise.
	(BCDADD_GT_V1TI): Likewise.
	(BCDADD_GT_V16QI): Likewise.
	(BCDADD_LT_V1TI): Likewise.
	(BCDADD_LT_V16QI): Likewise.
	(BCDADD_OV_V1TI): Likewise.
	(BCDADD_OV_V16QI): Likewise.
	(BCDSUB_V1TI): Likewise.
	(BCDSUB_V16QI): Likewise.
	(BCDSUB_EQ_V1TI): Likewise.
	(BCDSUB_EQ_V16QI): Likewise.
	(BCDSUB_GT_V1TI): Likewise.
	(BCDSUB_GT_V16QI): Likewise.
	(BCDSUB_LT_V1TI): Likewise.
	(BCDSUB_LT_V16QI): Likewise.
	(BCDSUB_OV_V1TI): Likewise.
	(BCDSUB_OV_V16QI): Likewise.
	(VSTDCDP): Likewise.
	(VSTDCSP): Likewise.
	(VTDCDP): Likewise.
	(VTDCSP): Likewise.
	(TSTSFI_EQ_DD): Likewise.
	(TSTSFI_EQ_TD): Likewise.
	(TSTSFI_GT_DD): Likewise.
	(TSTSFI_GT_TD): Likewise.
	(TSTSFI_LT_DD): Likewise.
	(TSTSFI_LT_TD): Likewise.
	(TSTSFI_OV_DD): Likewise.
	(TSTSFI_OV_TD): Likewise.
	(VSTDCQP): Likewise.
	(DDEDPD): Likewise.
	(DDEDPDQ): Likewise.
	(DENBCD): Likewise.
	(DENBCDQ): Likewise.
	(DSCLI): Likewise.
	(DSCLIQ): Likewise.
	(DSCRI): Likewise.
	(DSCRIQ): Likewise.
	(UNPACK_TD): Likewise.
	(VSHASIGMAD): Likewise.
	(VSHASIGMAW): Likewise.
	(VCNTMBB): Likewise.
	(VCNTMBD): Likewise.
	(VCNTMBH): Likewise.
	(VCNTMBW): Likewise.
	(VREPLACE_UN_UV2DI): Likewise.
	(VREPLACE_UN_UV4SI): Likewise.
	(VREPLACE_UN_V2DF): Likewise.
	(VREPLACE_UN_V2DI): Likewise.
	(VREPLACE_UN_V4SF): Likewise.
	(VREPLACE_UN_V4SI): Likewise.
	(VREPLACE_ELT_UV2DI): Likewise.
	(VREPLACE_ELT_UV4SI): Likewise.
	(VREPLACE_ELT_V2DF): Likewise.
	(VREPLACE_ELT_V2DI): Likewise.
	(VREPLACE_ELT_V4SF): Likewise.
	(VREPLACE_ELT_V4SI): Likewise.
	(VSLDB_V16QI): Likewise.
	(VSLDB_V2DI): Likewise.
	(VSLDB_V4SI): Likewise.
	(VSLDB_V8HI): Likewise.
	(VSRDB_V16QI): Likewise.
	(VSRDB_V2DI): Likewise.
	(VSRDB_V4SI): Likewise.
	(VSRDB_V8HI): Likewise.
	(VXXSPLTI32DX_V4SF): Likewise.
	(VXXSPLTI32DX_V4SI): Likewise.
	(XXEVAL): Likewise.
	(XXGENPCVM_V16QI): Likewise.
	(XXGENPCVM_V2DI): Likewise.
	(XXGENPCVM_V4SI): Likewise.
	(XXGENPCVM_V8HI): Likewise.
	(XXPERMX_UV16QI): Likewise.
	(XXPERMX_UV2DI): Likewise.
	(XXPERMX_UV4SI): Likewise.
	(XXPERMX_UV8HI): Likewise.
	(XXPERMX_V16QI): Likewise.
	(XXPERMX_V2DF): Likewise.
	(XXPERMX_V2DI): Likewise.
	(XXPERMX_V4SF): Likewise.
	(XXPERMX_V4SI): Likewise.
	(XXPERMX_V8HI): Likewise.
	(DISASSEMBLE_ACC_INTERNAL): Likewise.
	(DISASSEMBLE_PAIR_INTERNAL): Likewise.
	(PMXVBF16GER2): Likewise.
	(PMXVBF16GER2_INTERNAL): Likewise.
	(PMXVBF16GER2NN): Likewise.
	(PMXVBF16GER2NN_INTERNAL): Likewise.
	(PMXVBF16GER2NP): Likewise.
	(PMXVBF16GER2NP_INTERNAL): Likewise.
	(PMXVBF16GER2PN): Likewise.
	(PMXVBF16GER2PN_INTERNAL): Likewise.
	(PMXVBF16GER2PP): Likewise.
	(PMXVBF16GER2PP_INTERNAL): Likewise.
	(PMXVF16GER2): Likewise.
	(PMXVF16GER2_INTERNAL): Likewise.
	(PMXVF16GER2NN): Likewise.
	(PMXVF16GER2NN_INTERNAL): Likewise.
	(PMXVF16GER2NP): Likewise.
	(PMXVF16GER2NP_INTERNAL): Likewise.
	(PMXVF16GER2PN): Likewise.
	(PMXVF16GER2PN_INTERNAL): Likewise.
	(PMXVF16GER2PP): Likewise.
	(PMXVF16GER2PP_INTERNAL): Likewise.
	(PMXVF32GER): Likewise.
	(PMXVF32GER_INTERNAL): Likewise.
	(PMXVF32GERNN): Likewise.
	(PMXVF32GERNN_INTERNAL): Likewise.
	(PMXVF32GERNP): Likewise.
	(PMXVF32GERNP_INTERNAL): Likewise.
	(PMXVF32GERPN): Likewise.
	(PMXVF32GERPN_INTERNAL): Likewise.
	(PMXVF32GERPP): Likewise.
	(PMXVF32GERPP_INTERNAL): Likewise.
	(PMXVF64GER): Likewise.
	(PMXVF64GER_INTERNAL): Likewise.
	(PMXVF64GERNN): Likewise.
	(PMXVF64GERNN_INTERNAL): Likewise.
	(PMXVF64GERNP): Likewise.
	(PMXVF64GERNP_INTERNAL): Likewise.
	(PMXVF64GERPN): Likewise.
	(PMXVF64GERPN_INTERNAL): Likewise.
	(PMXVF64GERPP): Likewise.
	(PMXVF64GERPP_INTERNAL): Likewise.
	(PMXVI16GER2): Likewise.
	(PMXVI16GER2_INTERNAL): Likewise.
	(PMXVI16GER2PP): Likewise.
	(PMXVI16GER2PP_INTERNAL): Likewise.
	(PMXVI16GER2S): Likewise.
	(PMXVI16GER2S_INTERNAL): Likewise.
	(PMXVI16GER2SPP): Likewise.
	(PMXVI16GER2SPP_INTERNAL): Likewise.
	(PMXVI4GER8): Likewise.
	(PMXVI4GER8_INTERNAL): Likewise.
	(PMXVI4GER8PP): Likewise.
	(PMXVI4GER8PP_INTERNAL): Likewise.
	(PMXVI8GER4): Likewise.
	(PMXVI8GER4_INTERNAL): Likewise.
	(PMXVI8GER4PP): Likewise.
	(PMXVI8GER4PP_INTERNAL): Likewise.
	(PMXVI8GER4SPP): Likewise.
	(PMXVI8GER4SPP_INTERNAL): Likewise.
	(DISASSEMBLE_PAIR_V_INTERNAL): Likewise.

gcc/testsuite/
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c:
	Adjust error messages.
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr80315-1.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr80315-2.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr80315-3.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr80315-4.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr82015.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/pr91903.c: Likewise.
	* gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c:
	Likewise.
	* gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-10.c: Likewise.
---
 gcc/config/rs6000/rs6000-builtins.def         | 520 +++++++++---------
 .../powerpc/bfp/scalar-test-data-class-10.c   |   2 +-
 .../powerpc/bfp/scalar-test-data-class-2.c    |   2 +-
 .../powerpc/bfp/scalar-test-data-class-3.c    |   2 +-
 .../powerpc/bfp/scalar-test-data-class-4.c    |   2 +-
 .../powerpc/bfp/scalar-test-data-class-5.c    |   2 +-
 .../powerpc/bfp/scalar-test-data-class-9.c    |   2 +-
 .../powerpc/bfp/vec-test-data-class-4.c       |   2 +-
 .../powerpc/bfp/vec-test-data-class-5.c       |   2 +-
 .../powerpc/bfp/vec-test-data-class-6.c       |   2 +-
 .../powerpc/bfp/vec-test-data-class-7.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-12.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-14.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-17.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-19.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-2.c        |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-22.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-24.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-27.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-29.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-32.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-34.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-37.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-39.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-4.c        |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-42.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-44.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-47.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-49.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-52.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-54.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-57.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-59.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-62.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-64.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-67.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-69.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-7.c        |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-72.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-74.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-77.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-79.c       |   2 +-
 .../gcc.target/powerpc/dfp/dtstsfi-9.c        |   2 +-
 gcc/testsuite/gcc.target/powerpc/pr80315-1.c  |   2 +-
 gcc/testsuite/gcc.target/powerpc/pr80315-2.c  |   2 +-
 gcc/testsuite/gcc.target/powerpc/pr80315-3.c  |   2 +-
 gcc/testsuite/gcc.target/powerpc/pr80315-4.c  |   2 +-
 gcc/testsuite/gcc.target/powerpc/pr82015.c    |   4 +-
 gcc/testsuite/gcc.target/powerpc/pr91903.c    |  60 +-
 .../powerpc/test_fpscr_rn_builtin_error.c     |   8 +-
 .../gcc.target/powerpc/vec-ternarylogic-10.c  |   6 +-
 51 files changed, 351 insertions(+), 339 deletions(-)

Comments

Segher Boessenkool Jan. 28, 2022, 11:24 p.m. UTC | #1
On Fri, Jan 28, 2022 at 11:50:21AM -0600, Bill Schmidt wrote:
> When introducing the new built-in support, I tried to match as many
> existing error messages as possible.  One common form was "argument X must
> be a Y-bit unsigned literal".  Another was "argument X must be a literal
> between X' and  Y', inclusive".  During reviews, Segher requested that I
> eventually convert all messages of the first form into the second form for
> consistency.  That's what this patch does, replacing all <x>-form
> constraints (first form) with <x,y>-form constraints (second form).

Well, I asked for the error messages to be clearer and more consistent
like that.  I don't think changing our source code like this is an
improvement (*we* know what a 5-bit signed number is).  Do you think
after your patch it is clearer and we will make fewer errors?


Segher
Li, Pan2 via Gcc-patches Jan. 31, 2022, 5:21 p.m. UTC | #2
On 1/28/22 5:24 PM, Segher Boessenkool wrote:
> On Fri, Jan 28, 2022 at 11:50:21AM -0600, Bill Schmidt wrote:
>> When introducing the new built-in support, I tried to match as many
>> existing error messages as possible.  One common form was "argument X must
>> be a Y-bit unsigned literal".  Another was "argument X must be a literal
>> between X' and  Y', inclusive".  During reviews, Segher requested that I
>> eventually convert all messages of the first form into the second form for
>> consistency.  That's what this patch does, replacing all <x>-form
>> constraints (first form) with <x,y>-form constraints (second form).
> Well, I asked for the error messages to be clearer and more consistent
> like that.  I don't think changing our source code like this is an
> improvement (*we* know what a 5-bit signed number is).  Do you think
> after your patch it is clearer and we will make fewer errors?

No, I don't think the patch is a particular improvement.  It sounds like
I may have misinterpreted what you were looking for here.  Please let me
know what I might do differently.

For example, if we leave the <x> format in place in the source, I could
change the error messages that we produce to calculate the minimum and
maximum allowed values.  Then we'd still have the changes to the test
cases, but fewer changes to the source.  Thoughts?

Thanks,
Bill

>
> Segher
Segher Boessenkool Jan. 31, 2022, 5:28 p.m. UTC | #3
On Mon, Jan 31, 2022 at 11:21:32AM -0600, Bill Schmidt wrote:
> On 1/28/22 5:24 PM, Segher Boessenkool wrote:
> > On Fri, Jan 28, 2022 at 11:50:21AM -0600, Bill Schmidt wrote:
> >> When introducing the new built-in support, I tried to match as many
> >> existing error messages as possible.  One common form was "argument X must
> >> be a Y-bit unsigned literal".  Another was "argument X must be a literal
> >> between X' and  Y', inclusive".  During reviews, Segher requested that I
> >> eventually convert all messages of the first form into the second form for
> >> consistency.  That's what this patch does, replacing all <x>-form
> >> constraints (first form) with <x,y>-form constraints (second form).
> > Well, I asked for the error messages to be clearer and more consistent
> > like that.  I don't think changing our source code like this is an
> > improvement (*we* know what a 5-bit signed number is).  Do you think
> > after your patch it is clearer and we will make fewer errors?
> 
> No, I don't think the patch is a particular improvement.  It sounds like
> I may have misinterpreted what you were looking for here.  Please let me
> know what I might do differently.
> 
> For example, if we leave the <x> format in place in the source, I could
> change the error messages that we produce to calculate the minimum and
> maximum allowed values.  Then we'd still have the changes to the test
> cases, but fewer changes to the source.  Thoughts?

That is exactly what I asked for, and what I still think is the best
option.  I haven't tried it out though, so there may be arguments
against this :-)


Segher
Li, Pan2 via Gcc-patches Jan. 31, 2022, 5:31 p.m. UTC | #4
On 1/31/22 11:28 AM, Segher Boessenkool wrote:
> On Mon, Jan 31, 2022 at 11:21:32AM -0600, Bill Schmidt wrote:
>> On 1/28/22 5:24 PM, Segher Boessenkool wrote:
>>> On Fri, Jan 28, 2022 at 11:50:21AM -0600, Bill Schmidt wrote:
>>>> When introducing the new built-in support, I tried to match as many
>>>> existing error messages as possible.  One common form was "argument X must
>>>> be a Y-bit unsigned literal".  Another was "argument X must be a literal
>>>> between X' and  Y', inclusive".  During reviews, Segher requested that I
>>>> eventually convert all messages of the first form into the second form for
>>>> consistency.  That's what this patch does, replacing all <x>-form
>>>> constraints (first form) with <x,y>-form constraints (second form).
>>> Well, I asked for the error messages to be clearer and more consistent
>>> like that.  I don't think changing our source code like this is an
>>> improvement (*we* know what a 5-bit signed number is).  Do you think
>>> after your patch it is clearer and we will make fewer errors?
>> No, I don't think the patch is a particular improvement.  It sounds like
>> I may have misinterpreted what you were looking for here.  Please let me
>> know what I might do differently.
>>
>> For example, if we leave the <x> format in place in the source, I could
>> change the error messages that we produce to calculate the minimum and
>> maximum allowed values.  Then we'd still have the changes to the test
>> cases, but fewer changes to the source.  Thoughts?
> That is exactly what I asked for, and what I still think is the best
> option.  I haven't tried it out though, so there may be arguments
> against this :-)

Thanks for the clarification!  I'll make a run at it.

Bill

>
> Segher
diff mbox series

Patch

diff --git a/gcc/config/rs6000/rs6000-builtins.def b/gcc/config/rs6000/rs6000-builtins.def
index a8ebb4af239..cfe31c2e7de 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -175,6 +175,7 @@ 
 ; indicated by one of the following occurring after the "int" token:
 ;
 ;    <x>   restricts the constant to x bits, interpreted as unsigned
+;          (supported, but now deprecated in favor of <x,y>)
 ;    <x,y> restricts the constant to the inclusive range [x,y]
 ;    [x,y] restricts the constant to the inclusive range [x,y],
 ;	   but only applies if the argument is constant.
@@ -224,13 +225,13 @@ 
   unsigned long __builtin_ppc_mftb ();
     MFTB rs6000_mftb_di {32bit}
 
-  void __builtin_mtfsb0 (const int<5>);
+  void __builtin_mtfsb0 (const int<0,31>);
     MTFSB0 rs6000_mtfsb0 {}
 
-  void __builtin_mtfsb1 (const int<5>);
+  void __builtin_mtfsb1 (const int<0,31>);
     MTFSB1 rs6000_mtfsb1 {}
 
-  void __builtin_mtfsf (const int<8>, double);
+  void __builtin_mtfsf (const int<0,255>, double);
     MTFSF rs6000_mtfsf {}
 
   const __ibm128 __builtin_pack_ibm128 (double, double);
@@ -239,12 +240,12 @@ 
   void __builtin_set_fpscr_rn (const int[0,3]);
     SET_FPSCR_RN rs6000_set_fpscr_rn {}
 
-  const double __builtin_unpack_ibm128 (__ibm128, const int<1>);
+  const double __builtin_unpack_ibm128 (__ibm128, const int<0,1>);
     UNPACK_IF unpackif {}
 
 ; This is redundant with __builtin_unpack_ibm128, as it requires long
 ; double to be __ibm128.  Should probably be deprecated.
-  const double __builtin_unpack_longdouble (long double, const int<1>);
+  const double __builtin_unpack_longdouble (long double, const int<0,1>);
     UNPACK_TF unpacktf {ibmld}
 
 
@@ -301,22 +302,22 @@ 
   const vf __builtin_altivec_copysignfp (vf, vf);
     COPYSIGN_V4SF vector_copysignv4sf3 {}
 
-  void __builtin_altivec_dss (const int<2>);
+  void __builtin_altivec_dss (const int<0,3>);
     DSS altivec_dss {}
 
   void __builtin_altivec_dssall ();
     DSSALL altivec_dssall {}
 
-  void __builtin_altivec_dst (void *, const int, const int<2>);
+  void __builtin_altivec_dst (void *, const int, const int<0,3>);
     DST altivec_dst {}
 
-  void __builtin_altivec_dstst (void *, const int, const int<2>);
+  void __builtin_altivec_dstst (void *, const int, const int<0,3>);
     DSTST altivec_dstst {}
 
-  void __builtin_altivec_dststt (void *, const int, const int<2>);
+  void __builtin_altivec_dststt (void *, const int, const int<0,3>);
     DSTSTT altivec_dststt {}
 
-  void __builtin_altivec_dstt (void *, const int, const int<2>);
+  void __builtin_altivec_dstt (void *, const int, const int<0,3>);
     DSTT altivec_dstt {}
 
   fpmath vsi __builtin_altivec_fix_sfsi (vf);
@@ -544,10 +545,10 @@ 
   const vui __builtin_altivec_vavguw (vui, vui);
     VAVGUW uavgv4si3_ceil {}
 
-  const vf __builtin_altivec_vcfsx (vsi, const int<5>);
+  const vf __builtin_altivec_vcfsx (vsi, const int<0,31>);
     VCFSX altivec_vcfsx {}
 
-  const vf __builtin_altivec_vcfux (vui, const int<5>);
+  const vf __builtin_altivec_vcfux (vui, const int<0,31>);
     VCFUX altivec_vcfux {}
 
   const vsi __builtin_altivec_vcmpbfp (vf, vf);
@@ -628,10 +629,10 @@ 
   const int __builtin_altivec_vcmpgtuw_p (int, vsi, vsi);
     VCMPGTUW_P vector_gtu_v4si_p {pred}
 
-  const vsi __builtin_altivec_vctsxs (vf, const int<5>);
+  const vsi __builtin_altivec_vctsxs (vf, const int<0,31>);
     VCTSXS altivec_vctsxs {}
 
-  const vui __builtin_altivec_vctuxs (vf, const int<5>);
+  const vui __builtin_altivec_vctuxs (vf, const int<0,31>);
     VCTUXS altivec_vctuxs {}
 
   fpmath vf __builtin_altivec_vexptefp (vf);
@@ -931,16 +932,16 @@ 
   const vsc __builtin_altivec_vslb (vsc, vuc);
     VSLB vashlv16qi3 {}
 
-  const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>);
+  const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<0,15>);
     VSLDOI_16QI altivec_vsldoi_v16qi {}
 
-  const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<4>);
+  const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<0,15>);
     VSLDOI_4SF altivec_vsldoi_v4sf {}
 
-  const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<4>);
+  const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<0,15>);
     VSLDOI_4SI altivec_vsldoi_v4si {}
 
-  const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>);
+  const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<0,15>);
     VSLDOI_8HI altivec_vsldoi_v8hi {}
 
   const vss __builtin_altivec_vslh (vss, vus);
@@ -952,10 +953,10 @@ 
   const vsi __builtin_altivec_vslw (vsi, vui);
     VSLW vashlv4si3 {}
 
-  const vsc __builtin_altivec_vspltb (vsc, const int<4>);
+  const vsc __builtin_altivec_vspltb (vsc, const int<0,15>);
     VSPLTB altivec_vspltb {}
 
-  const vss __builtin_altivec_vsplth (vss, const int<3>);
+  const vss __builtin_altivec_vsplth (vss, const int<0,7>);
     VSPLTH altivec_vsplth {}
 
   const vsc __builtin_altivec_vspltisb (const int<-16,15>);
@@ -967,7 +968,7 @@ 
   const vsi __builtin_altivec_vspltisw (const int<-16,15>);
     VSPLTISW altivec_vspltisw {}
 
-  const vsi __builtin_altivec_vspltw (vsi, const int<2>);
+  const vsi __builtin_altivec_vspltw (vsi, const int<0,3>);
     VSPLTW altivec_vspltw {}
 
   const vsi __builtin_altivec_vsr (vsi, vsi);
@@ -1114,16 +1115,16 @@ 
              signed short);
     VEC_INIT_V8HI nothing {init}
 
-  const vsc __builtin_vec_set_v16qi (vsc, signed char, const int<4>);
+  const vsc __builtin_vec_set_v16qi (vsc, signed char, const int<0,15>);
     VEC_SET_V16QI nothing {set}
 
-  const vf __builtin_vec_set_v4sf (vf, float, const int<2>);
+  const vf __builtin_vec_set_v4sf (vf, float, const int<0,3>);
     VEC_SET_V4SF nothing {set}
 
-  const vsi __builtin_vec_set_v4si (vsi, signed int, const int<2>);
+  const vsi __builtin_vec_set_v4si (vsi, signed int, const int<0,3>);
     VEC_SET_V4SI nothing {set}
 
-  const vss __builtin_vec_set_v8hi (vss, signed short, const int<3>);
+  const vss __builtin_vec_set_v8hi (vss, signed short, const int<0,7>);
     VEC_SET_V8HI nothing {set}
 
 
@@ -1246,10 +1247,10 @@ 
   const vull __builtin_altivec_vsel_2di_uns (vull, vull, vull);
     VSEL_2DI_UNS vector_select_v2di_uns {}
 
-  const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<4>);
+  const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<0,15>);
     VSLDOI_2DF altivec_vsldoi_v2df {}
 
-  const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<4>);
+  const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<0,15>);
     VSLDOI_2DI altivec_vsldoi_v2di {}
 
   const vd __builtin_altivec_vxor_v2df (vd, vd);
@@ -1282,10 +1283,10 @@ 
   const vsq __builtin_vec_set_v1ti (vsq, signed __int128, const int<0,0>);
     VEC_SET_V1TI nothing {set}
 
-  const vd __builtin_vec_set_v2df (vd, double, const int<1>);
+  const vd __builtin_vec_set_v2df (vd, double, const int<0,1>);
     VEC_SET_V2DF nothing {set}
 
-  const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<1>);
+  const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<0,1>);
     VEC_SET_V2DI nothing {set}
 
   const vsc __builtin_vsx_cmpge_16qi (vsc, vsc);
@@ -1719,7 +1720,7 @@ 
   const vd __builtin_vsx_xvcvsxddp (vsll);
     XVCVSXDDP vsx_floatv2div2df2 {}
 
-  const vd __builtin_vsx_xvcvsxddp_scale (vsll, const int<5>);
+  const vd __builtin_vsx_xvcvsxddp_scale (vsll, const int<0,31>);
     XVCVSXDDP_SCALE vsx_xvcvsxddp_scale {}
 
   const vf __builtin_vsx_xvcvsxdsp (vsll);
@@ -1734,7 +1735,7 @@ 
   const vd __builtin_vsx_xvcvuxddp (vsll);
     XVCVUXDDP vsx_floatunsv2div2df2 {}
 
-  const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<5>);
+  const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<0,31>);
     XVCVUXDDP_SCALE vsx_xvcvuxddp_scale {}
 
   const vd __builtin_vsx_xvcvuxddp_uns (vull);
@@ -1911,25 +1912,25 @@ 
   const vsi __builtin_vsx_xxmrglw_4si (vsi, vsi);
     XXMRGLW_4SI vsx_xxmrglw_v4si {}
 
-  const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<2>);
+  const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<0,3>);
     XXPERMDI_16QI vsx_xxpermdi_v16qi {}
 
-  const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<2>);
+  const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<0,3>);
     XXPERMDI_1TI vsx_xxpermdi_v1ti {}
 
-  const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<2>);
+  const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<0,3>);
     XXPERMDI_2DF vsx_xxpermdi_v2df {}
 
-  const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<2>);
+  const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<0,3>);
     XXPERMDI_2DI vsx_xxpermdi_v2di {}
 
-  const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<2>);
+  const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<0,3>);
     XXPERMDI_4SF vsx_xxpermdi_v4sf {}
 
-  const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<2>);
+  const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<0,3>);
     XXPERMDI_4SI vsx_xxpermdi_v4si {}
 
-  const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<2>);
+  const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<0,3>);
     XXPERMDI_8HI vsx_xxpermdi_v8hi {}
 
   const vsc __builtin_vsx_xxsel_16qi (vsc, vsc, vsc);
@@ -1968,28 +1969,28 @@ 
   const vus __builtin_vsx_xxsel_8hi_uns (vus, vus, vus);
     XXSEL_8HI_UNS vector_select_v8hi_uns {}
 
-  const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<2>);
+  const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<0,3>);
     XXSLDWI_16QI vsx_xxsldwi_v16qi {}
 
-  const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<2>);
+  const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<0,3>);
     XXSLDWI_2DF vsx_xxsldwi_v2df {}
 
-  const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<2>);
+  const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<0,3>);
     XXSLDWI_2DI vsx_xxsldwi_v2di {}
 
-  const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<2>);
+  const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<0,3>);
     XXSLDWI_4SF vsx_xxsldwi_v4sf {}
 
-  const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<2>);
+  const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<0,3>);
     XXSLDWI_4SI vsx_xxsldwi_v4si {}
 
-  const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<2>);
+  const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<0,3>);
     XXSLDWI_8HI vsx_xxsldwi_v8hi {}
 
-  const vd __builtin_vsx_xxspltd_2df (vd, const int<1>);
+  const vd __builtin_vsx_xxspltd_2df (vd, const int<0,1>);
     XXSPLTD_V2DF vsx_xxspltd_v2df {}
 
-  const vsll __builtin_vsx_xxspltd_2di (vsll, const int<1>);
+  const vsll __builtin_vsx_xxspltd_2di (vsll, const int<0,1>);
     XXSPLTD_V2DI vsx_xxspltd_v2di {}
 
 
@@ -2020,7 +2021,7 @@ 
   void __builtin_ppc_speculation_barrier ();
     SPECBARR speculation_barrier {}
 
-  const unsigned long __builtin_unpack_vector_int128 (vsq, const int<1>);
+  const unsigned long __builtin_unpack_vector_int128 (vsq, const int<0,1>);
     UNPACK_V1TI unpackv1ti {}
 
 
@@ -2345,34 +2346,34 @@ 
   const vsll __builtin_altivec_vupklsw (vsi);
     VUPKLSW altivec_vupklsw {}
 
-  const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<1>);
+  const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<0,1>);
     BCDADD_V1TI bcdadd_v1ti {}
 
-  const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<1>);
+  const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<0,1>);
     BCDADD_V16QI bcdadd_v16qi {}
 
-  const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<0,1>);
     BCDADD_EQ_V1TI bcdadd_eq_v1ti {}
 
-  const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<0,1>);
     BCDADD_EQ_V16QI bcdadd_eq_v16qi {}
 
-  const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<0,1>);
     BCDADD_GT_V1TI bcdadd_gt_v1ti {}
 
-  const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<0,1>);
     BCDADD_GT_V16QI bcdadd_gt_v16qi {}
 
-  const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<0,1>);
     BCDADD_LT_V1TI bcdadd_lt_v1ti {}
 
-  const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<0,1>);
     BCDADD_LT_V16QI bcdadd_lt_v16qi {}
 
-  const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<0,1>);
     BCDADD_OV_V1TI bcdadd_unordered_v1ti {}
 
-  const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<0,1>);
     BCDADD_OV_V16QI bcdadd_unordered_v16qi {}
 
   const signed int __builtin_bcdinvalid_v1ti (vsq);
@@ -2381,46 +2382,46 @@ 
   const signed int __builtin_bcdinvalid_v16qi (vsc);
     BCDINVALID_V16QI bcdinvalid_v16qi {}
 
-  const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>);
+  const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_V1TI bcdsub_v1ti {}
 
-  const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<1>);
+  const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_V16QI bcdsub_v16qi {}
 
-  const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_EQ_V1TI bcdsub_eq_v1ti {}
 
-  const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_EQ_V16QI bcdsub_eq_v16qi {}
 
-  const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_GE_V1TI bcdsub_ge_v1ti {}
 
-  const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_GE_V16QI bcdsub_ge_v16qi {}
 
-  const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_GT_V1TI bcdsub_gt_v1ti {}
 
-  const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_GT_V16QI bcdsub_gt_v16qi {}
 
-  const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_LE_V1TI bcdsub_le_v1ti {}
 
-  const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_LE_V16QI bcdsub_le_v16qi {}
 
-  const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_LT_V1TI bcdsub_lt_v1ti {}
 
-  const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_LT_V16QI bcdsub_lt_v16qi {}
 
-  const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<1>);
+  const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<0,1>);
     BCDSUB_OV_V1TI bcdsub_unordered_v1ti {}
 
-  const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<1>);
+  const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<0,1>);
     BCDSUB_OV_V16QI bcdsub_unordered_v16qi {}
 
   const vuc __builtin_crypto_vpermxor_v16qi (vuc, vuc, vuc);
@@ -2749,11 +2750,11 @@ 
     VSCEDPUO xscmpexpdp_unordered {}
 
   const signed int \
-      __builtin_vsx_scalar_test_data_class_dp (double, const int<7>);
+      __builtin_vsx_scalar_test_data_class_dp (double, const int<0,127>);
     VSTDCDP xststdcdp {}
 
   const signed int \
-      __builtin_vsx_scalar_test_data_class_sp (float, const int<7>);
+      __builtin_vsx_scalar_test_data_class_sp (float, const int<0,127>);
     VSTDCSP xststdcsp {}
 
   const signed int __builtin_vsx_scalar_test_neg_dp (double);
@@ -2762,10 +2763,10 @@ 
   const signed int __builtin_vsx_scalar_test_neg_sp (float);
     VSTDCNSP xststdcnegsp {}
 
-  const vsll __builtin_vsx_test_data_class_dp (vd, const int<7>);
+  const vsll __builtin_vsx_test_data_class_dp (vd, const int<0,127>);
     VTDCDP xvtstdcdp {}
 
-  const vsi __builtin_vsx_test_data_class_sp (vf, const int<7>);
+  const vsi __builtin_vsx_test_data_class_sp (vf, const int<0,127>);
     VTDCSP xvtstdcsp {}
 
   const vf __builtin_vsx_vextract_fp_from_shorth (vss);
@@ -2807,28 +2808,28 @@ 
   signed long __builtin_darn_raw ();
     DARN_RAW darn_raw_di {32bit}
 
-  const signed int __builtin_dtstsfi_eq_dd (const int<6>, _Decimal64);
+  const signed int __builtin_dtstsfi_eq_dd (const int<0,63>, _Decimal64);
     TSTSFI_EQ_DD dfptstsfi_eq_dd {}
 
-  const signed int __builtin_dtstsfi_eq_td (const int<6>, _Decimal128);
+  const signed int __builtin_dtstsfi_eq_td (const int<0,63>, _Decimal128);
     TSTSFI_EQ_TD dfptstsfi_eq_td {}
 
-  const signed int __builtin_dtstsfi_gt_dd (const int<6>, _Decimal64);
+  const signed int __builtin_dtstsfi_gt_dd (const int<0,63>, _Decimal64);
     TSTSFI_GT_DD dfptstsfi_gt_dd {}
 
-  const signed int __builtin_dtstsfi_gt_td (const int<6>, _Decimal128);
+  const signed int __builtin_dtstsfi_gt_td (const int<0,63>, _Decimal128);
     TSTSFI_GT_TD dfptstsfi_gt_td {}
 
-  const signed int __builtin_dtstsfi_lt_dd (const int<6>, _Decimal64);
+  const signed int __builtin_dtstsfi_lt_dd (const int<0,63>, _Decimal64);
     TSTSFI_LT_DD dfptstsfi_lt_dd {}
 
-  const signed int __builtin_dtstsfi_lt_td (const int<6>, _Decimal128);
+  const signed int __builtin_dtstsfi_lt_td (const int<0,63>, _Decimal128);
     TSTSFI_LT_TD dfptstsfi_lt_td {}
 
-  const signed int __builtin_dtstsfi_ov_dd (const int<6>, _Decimal64);
+  const signed int __builtin_dtstsfi_ov_dd (const int<0,63>, _Decimal64);
     TSTSFI_OV_DD dfptstsfi_unordered_dd {}
 
-  const signed int __builtin_dtstsfi_ov_td (const int<6>, _Decimal128);
+  const signed int __builtin_dtstsfi_ov_td (const int<0,63>, _Decimal128);
     TSTSFI_OV_TD dfptstsfi_unordered_td {}
 
 
@@ -2914,7 +2915,7 @@ 
     VSIEQPF xsiexpqpf_kf {}
 
   const signed int __builtin_vsx_scalar_test_data_class_qp (_Float128, \
-                                                            const int<7>);
+                                                            const int<0,127>);
     VSTDCQP xststdcqp_kf {}
 
   const signed int __builtin_vsx_scalar_test_neg_qp (_Float128);
@@ -2924,16 +2925,16 @@ 
 
 ; Decimal floating-point builtins.
 [dfp]
-  const _Decimal64 __builtin_ddedpd (const int<2>, _Decimal64);
+  const _Decimal64 __builtin_ddedpd (const int<0,3>, _Decimal64);
     DDEDPD dfp_ddedpd_dd {}
 
-  const _Decimal128 __builtin_ddedpdq (const int<2>, _Decimal128);
+  const _Decimal128 __builtin_ddedpdq (const int<0,3>, _Decimal128);
     DDEDPDQ dfp_ddedpd_td {}
 
-  const _Decimal64 __builtin_denbcd (const int<1>, _Decimal64);
+  const _Decimal64 __builtin_denbcd (const int<0,1>, _Decimal64);
     DENBCD dfp_denbcd_dd {}
 
-  const _Decimal128 __builtin_denbcdq (const int<1>, _Decimal128);
+  const _Decimal128 __builtin_denbcdq (const int<0,1>, _Decimal128);
     DENBCDQ dfp_denbcd_td {}
 
   const _Decimal128 __builtin_denb2dfp_v16qi (vsc);
@@ -2945,16 +2946,16 @@ 
   const _Decimal128 __builtin_diexq (signed long long, _Decimal128);
     DIEXQ dfp_diex_td {}
 
-  const _Decimal64 __builtin_dscli (_Decimal64, const int<6>);
+  const _Decimal64 __builtin_dscli (_Decimal64, const int<0,63>);
     DSCLI dfp_dscli_dd {}
 
-  const _Decimal128 __builtin_dscliq (_Decimal128, const int<6>);
+  const _Decimal128 __builtin_dscliq (_Decimal128, const int<0,63>);
     DSCLIQ dfp_dscli_td {}
 
-  const _Decimal64 __builtin_dscri (_Decimal64, const int<6>);
+  const _Decimal64 __builtin_dscri (_Decimal64, const int<0,63>);
     DSCRI dfp_dscri_dd {}
 
-  const _Decimal128 __builtin_dscriq (_Decimal128, const int<6>);
+  const _Decimal128 __builtin_dscriq (_Decimal128, const int<0,63>);
     DSCRIQ dfp_dscri_td {}
 
   const signed long long __builtin_dxex (_Decimal64);
@@ -2970,7 +2971,8 @@ 
   void __builtin_set_fpscr_drn (const int[0,7]);
     SET_FPSCR_DRN rs6000_set_fpscr_drn {}
 
-  const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>);
+  const unsigned long long __builtin_unpack_dec128 (_Decimal128, \
+                                                    const int<0,1>);
     UNPACK_TD unpacktd {}
 
 
@@ -3005,10 +3007,12 @@ 
   const vuc __builtin_crypto_vsbox_be (vuc);
     VSBOX_BE crypto_vsbox_v16qi {}
 
-  const vull __builtin_crypto_vshasigmad (vull, const int<1>, const int<4>);
+  const vull __builtin_crypto_vshasigmad (vull, const int<0,1>, \
+                                          const int<0,15>);
     VSHASIGMAD crypto_vshasigmad {}
 
-  const vui __builtin_crypto_vshasigmaw (vui, const int<1>, const int<4>);
+  const vui __builtin_crypto_vshasigmaw (vui, const int<0,1>, \
+                                         const int<0,15>);
     VSHASIGMAW crypto_vshasigmaw {}
 
 
@@ -3098,16 +3102,16 @@ 
   const vbq __builtin_altivec_cmple_u1ti (vuq, vuq);
     CMPLE_U1TI vector_ngtuv1ti {}
 
-  const unsigned long long __builtin_altivec_cntmbb (vuc, const int<1>);
+  const unsigned long long __builtin_altivec_cntmbb (vuc, const int<0,1>);
     VCNTMBB vec_cntmb_v16qi {}
 
-  const unsigned long long __builtin_altivec_cntmbd (vull, const int<1>);
+  const unsigned long long __builtin_altivec_cntmbd (vull, const int<0,1>);
     VCNTMBD vec_cntmb_v2di {}
 
-  const unsigned long long __builtin_altivec_cntmbh (vus, const int<1>);
+  const unsigned long long __builtin_altivec_cntmbh (vus, const int<0,1>);
     VCNTMBH vec_cntmb_v8hi {}
 
-  const unsigned long long __builtin_altivec_cntmbw (vui, const int<1>);
+  const unsigned long long __builtin_altivec_cntmbw (vui, const int<0,1>);
     VCNTMBW vec_cntmb_v4si {}
 
   const vsq __builtin_altivec_div_v1ti (vsq, vsq);
@@ -3388,44 +3392,46 @@ 
     VPEXTD vpextd {}
 
   const vull __builtin_altivec_vreplace_un_uv2di (vull, unsigned long long, \
-                                                  const int<4>);
+                                                  const int<0,15>);
     VREPLACE_UN_UV2DI vreplace_un_v2di {}
 
   const vui __builtin_altivec_vreplace_un_uv4si (vui, unsigned int, \
-                                                 const int<4>);
+                                                 const int<0,15>);
     VREPLACE_UN_UV4SI vreplace_un_v4si {}
 
-  const vd __builtin_altivec_vreplace_un_v2df (vd, double, const int<4>);
+  const vd __builtin_altivec_vreplace_un_v2df (vd, double, const int<0,15>);
     VREPLACE_UN_V2DF vreplace_un_v2df {}
 
   const vsll __builtin_altivec_vreplace_un_v2di (vsll, signed long long, \
-                                                 const int<4>);
+                                                 const int<0,15>);
     VREPLACE_UN_V2DI vreplace_un_v2di {}
 
-  const vf __builtin_altivec_vreplace_un_v4sf (vf, float, const int<4>);
+  const vf __builtin_altivec_vreplace_un_v4sf (vf, float, const int<0,15>);
     VREPLACE_UN_V4SF vreplace_un_v4sf {}
 
-  const vsi __builtin_altivec_vreplace_un_v4si (vsi, signed int, const int<4>);
+  const vsi __builtin_altivec_vreplace_un_v4si (vsi, signed int, \
+                                                const int<0,15>);
     VREPLACE_UN_V4SI vreplace_un_v4si {}
 
   const vull __builtin_altivec_vreplace_uv2di (vull, unsigned long long, \
-                                               const int<1>);
+                                               const int<0,1>);
     VREPLACE_ELT_UV2DI vreplace_elt_v2di {}
 
-  const vui __builtin_altivec_vreplace_uv4si (vui, unsigned int, const int<2>);
+  const vui __builtin_altivec_vreplace_uv4si (vui, unsigned int, \
+                                              const int<0,3>);
     VREPLACE_ELT_UV4SI vreplace_elt_v4si {}
 
-  const vd __builtin_altivec_vreplace_v2df (vd, double, const int<1>);
+  const vd __builtin_altivec_vreplace_v2df (vd, double, const int<0,1>);
     VREPLACE_ELT_V2DF vreplace_elt_v2df {}
 
   const vsll __builtin_altivec_vreplace_v2di (vsll, signed long long, \
-                                              const int<1>);
+                                              const int<0,1>);
     VREPLACE_ELT_V2DI vreplace_elt_v2di {}
 
-  const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<2>);
+  const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<0,3>);
     VREPLACE_ELT_V4SF vreplace_elt_v4sf {}
 
-  const vsi __builtin_altivec_vreplace_v4si (vsi, signed int, const int<2>);
+  const vsi __builtin_altivec_vreplace_v4si (vsi, signed int, const int<0,3>);
     VREPLACE_ELT_V4SI vreplace_elt_v4si {}
 
   const vsq __builtin_altivec_vrlq (vsq, vuq);
@@ -3440,16 +3446,16 @@ 
   const vsq __builtin_altivec_vsignext (vsll);
     VSIGNEXTSD2Q vsignextend_v2di_v1ti {}
 
-  const vsc __builtin_altivec_vsldb_v16qi (vsc, vsc, const int<3>);
+  const vsc __builtin_altivec_vsldb_v16qi (vsc, vsc, const int<0,7>);
     VSLDB_V16QI vsldb_v16qi {}
 
-  const vsll __builtin_altivec_vsldb_v2di (vsll, vsll, const int<3>);
+  const vsll __builtin_altivec_vsldb_v2di (vsll, vsll, const int<0,7>);
     VSLDB_V2DI vsldb_v2di {}
 
-  const vsi __builtin_altivec_vsldb_v4si (vsi, vsi, const int<3>);
+  const vsi __builtin_altivec_vsldb_v4si (vsi, vsi, const int<0,7>);
     VSLDB_V4SI vsldb_v4si {}
 
-  const vss __builtin_altivec_vsldb_v8hi (vss, vss, const int<3>);
+  const vss __builtin_altivec_vsldb_v8hi (vss, vss, const int<0,7>);
     VSLDB_V8HI vsldb_v8hi {}
 
   const vsq __builtin_altivec_vslq (vsq, vuq);
@@ -3458,16 +3464,16 @@ 
   const vsq __builtin_altivec_vsraq (vsq, vuq);
     VSRAQ vashrv1ti3 {}
 
-  const vsc __builtin_altivec_vsrdb_v16qi (vsc, vsc, const int<3>);
+  const vsc __builtin_altivec_vsrdb_v16qi (vsc, vsc, const int<0,7>);
     VSRDB_V16QI vsrdb_v16qi {}
 
-  const vsll __builtin_altivec_vsrdb_v2di (vsll, vsll, const int<3>);
+  const vsll __builtin_altivec_vsrdb_v2di (vsll, vsll, const int<0,7>);
     VSRDB_V2DI vsrdb_v2di {}
 
-  const vsi __builtin_altivec_vsrdb_v4si (vsi, vsi, const int<3>);
+  const vsi __builtin_altivec_vsrdb_v4si (vsi, vsi, const int<0,7>);
     VSRDB_V4SI vsrdb_v4si {}
 
-  const vss __builtin_altivec_vsrdb_v8hi (vss, vss, const int<3>);
+  const vss __builtin_altivec_vsrdb_v8hi (vss, vss, const int<0,7>);
     VSRDB_V8HI vsrdb_v8hi {}
 
   const vsq __builtin_altivec_vsrq (vsq, vuq);
@@ -3503,10 +3509,10 @@ 
   const signed int __builtin_vsx_xvtlsbb_all_zeros (vsc);
     XVTLSBB_ZEROS xvtlsbbz {}
 
-  const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<1>, float);
+  const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<0,1>, float);
     VXXSPLTI32DX_V4SF xxsplti32dx_v4sf {}
 
-  const vsi __builtin_vsx_vxxsplti32dx_v4si (vsi, const int<1>, signed int);
+  const vsi __builtin_vsx_vxxsplti32dx_v4si (vsi, const int<0,1>, signed int);
     VXXSPLTI32DX_V4SI xxsplti32dx_v4si {}
 
   const vd __builtin_vsx_vxxspltidp (float);
@@ -3542,49 +3548,49 @@ 
   const vus __builtin_vsx_xxblend_v8hi (vus, vus, vus);
     VXXBLEND_V8HI xxblend_v8hi {}
 
-  const vull __builtin_vsx_xxeval (vull, vull, vull, const int <8>);
+  const vull __builtin_vsx_xxeval (vull, vull, vull, const int <0,255>);
     XXEVAL xxeval {}
 
-  const vuc __builtin_vsx_xxgenpcvm_v16qi (vuc, const int <2>);
+  const vuc __builtin_vsx_xxgenpcvm_v16qi (vuc, const int <0,3>);
     XXGENPCVM_V16QI xxgenpcvm_v16qi {}
 
-  const vull __builtin_vsx_xxgenpcvm_v2di (vull, const int <2>);
+  const vull __builtin_vsx_xxgenpcvm_v2di (vull, const int <0,3>);
     XXGENPCVM_V2DI xxgenpcvm_v2di {}
 
-  const vui __builtin_vsx_xxgenpcvm_v4si (vui, const int <2>);
+  const vui __builtin_vsx_xxgenpcvm_v4si (vui, const int <0,3>);
     XXGENPCVM_V4SI xxgenpcvm_v4si {}
 
-  const vus __builtin_vsx_xxgenpcvm_v8hi (vus, const int <2>);
+  const vus __builtin_vsx_xxgenpcvm_v8hi (vus, const int <0,3>);
     XXGENPCVM_V8HI xxgenpcvm_v8hi {}
 
-  const vuc __builtin_vsx_xxpermx_uv16qi (vuc, vuc, vuc, const int<3>);
+  const vuc __builtin_vsx_xxpermx_uv16qi (vuc, vuc, vuc, const int<0,7>);
     XXPERMX_UV16QI xxpermx {}
 
-  const vull __builtin_vsx_xxpermx_uv2di (vull, vull, vuc, const int<3>);
+  const vull __builtin_vsx_xxpermx_uv2di (vull, vull, vuc, const int<0,7>);
     XXPERMX_UV2DI xxpermx {}
 
-  const vui __builtin_vsx_xxpermx_uv4si (vui, vui, vuc, const int<3>);
+  const vui __builtin_vsx_xxpermx_uv4si (vui, vui, vuc, const int<0,7>);
     XXPERMX_UV4SI xxpermx {}
 
-  const vus __builtin_vsx_xxpermx_uv8hi (vus, vus, vuc, const int<3>);
+  const vus __builtin_vsx_xxpermx_uv8hi (vus, vus, vuc, const int<0,7>);
     XXPERMX_UV8HI xxpermx {}
 
-  const vsc __builtin_vsx_xxpermx_v16qi (vsc, vsc, vuc, const int<3>);
+  const vsc __builtin_vsx_xxpermx_v16qi (vsc, vsc, vuc, const int<0,7>);
     XXPERMX_V16QI xxpermx {}
 
-  const vd __builtin_vsx_xxpermx_v2df (vd, vd, vuc, const int<3>);
+  const vd __builtin_vsx_xxpermx_v2df (vd, vd, vuc, const int<0,7>);
     XXPERMX_V2DF xxpermx {}
 
-  const vsll __builtin_vsx_xxpermx_v2di (vsll, vsll, vuc, const int<3>);
+  const vsll __builtin_vsx_xxpermx_v2di (vsll, vsll, vuc, const int<0,7>);
     XXPERMX_V2DI xxpermx {}
 
-  const vf __builtin_vsx_xxpermx_v4sf (vf, vf, vuc, const int<3>);
+  const vf __builtin_vsx_xxpermx_v4sf (vf, vf, vuc, const int<0,7>);
     XXPERMX_V4SF xxpermx {}
 
-  const vsi __builtin_vsx_xxpermx_v4si (vsi, vsi, vuc, const int<3>);
+  const vsi __builtin_vsx_xxpermx_v4si (vsi, vsi, vuc, const int<0,7>);
     XXPERMX_V4SI xxpermx {}
 
-  const vss __builtin_vsx_xxpermx_v8hi (vss, vss, vuc, const int<3>);
+  const vss __builtin_vsx_xxpermx_v8hi (vss, vss, vuc, const int<0,7>);
     XXPERMX_V8HI xxpermx {}
 
   pure unsigned __int128 __builtin_altivec_ze_lxvrbx (signed long, \
@@ -3648,244 +3654,250 @@ 
   void __builtin_mma_disassemble_acc (void *, v512 *);
     DISASSEMBLE_ACC nothing {mma,quad,mmaint}
 
-  vuc __builtin_mma_disassemble_acc_internal (v512, const int<2>);
+  vuc __builtin_mma_disassemble_acc_internal (v512, const int<0,3>);
     DISASSEMBLE_ACC_INTERNAL mma_disassemble_acc {mma}
 
   void __builtin_mma_disassemble_pair (void *, v256 *);
     DISASSEMBLE_PAIR nothing {mma,pair,mmaint}
 
-  vuc __builtin_mma_disassemble_pair_internal (v256, const int<2>);
+  vuc __builtin_mma_disassemble_pair_internal (v256, const int<0,3>);
     DISASSEMBLE_PAIR_INTERNAL vsx_disassemble_pair {mma}
 
-  void __builtin_mma_pmxvbf16ger2 (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>, const int<2>);
+  void __builtin_mma_pmxvbf16ger2 (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>, const int<0,3>);
     PMXVBF16GER2 nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvbf16ger2_internal (vuc, vuc, const int<4>, \
-                                            const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvbf16ger2_internal (vuc, vuc, const int<0,15>, \
+                                            const int<0,15>, const int<0,3>);
     PMXVBF16GER2_INTERNAL mma_pmxvbf16ger2 {mma}
 
-  void __builtin_mma_pmxvbf16ger2nn (v512 *, vuc, vuc, const int<4>, \
-                                     const int<4>, const int<2>);
+  void __builtin_mma_pmxvbf16ger2nn (v512 *, vuc, vuc, const int<0,15>, \
+                                     const int<0,15>, const int<0,3>);
     PMXVBF16GER2NN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvbf16ger2nn_internal (v512, vuc, vuc, const int<4>, \
-                                              const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvbf16ger2nn_internal (v512, vuc, vuc, \
+                                              const int<0,15>, \
+                                              const int<0,15>, const int<0,3>);
     PMXVBF16GER2NN_INTERNAL mma_pmxvbf16ger2nn {mma,quad}
 
-  void __builtin_mma_pmxvbf16ger2np (v512 *, vuc, vuc, const int<4>, \
-                                     const int<4>, const int<2>);
+  void __builtin_mma_pmxvbf16ger2np (v512 *, vuc, vuc, const int<0,15>, \
+                                     const int<0,15>, const int<0,3>);
     PMXVBF16GER2NP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvbf16ger2np_internal (v512, vuc, vuc, const int<4>, \
-                                              const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvbf16ger2np_internal (v512, vuc, vuc, \
+                                              const int<0,15>, \
+                                              const int<0,15>, const int<0,3>);
     PMXVBF16GER2NP_INTERNAL mma_pmxvbf16ger2np {mma,quad}
 
-  void __builtin_mma_pmxvbf16ger2pn (v512 *, vuc, vuc, const int<4>, \
-                                     const int<4>, const int<2>);
+  void __builtin_mma_pmxvbf16ger2pn (v512 *, vuc, vuc, const int<0,15>, \
+                                     const int<0,15>, const int<0,3>);
     PMXVBF16GER2PN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvbf16ger2pn_internal (v512, vuc, vuc, const int<4>, \
-                                              const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvbf16ger2pn_internal (v512, vuc, vuc, \
+                                              const int<0,15>, \
+                                              const int<0,15>, const int<0,3>);
     PMXVBF16GER2PN_INTERNAL mma_pmxvbf16ger2pn {mma,quad}
 
-  void __builtin_mma_pmxvbf16ger2pp (v512 *, vuc, vuc, const int<4>, \
-                                     const int<4>, const int<2>);
+  void __builtin_mma_pmxvbf16ger2pp (v512 *, vuc, vuc, const int<0,15>, \
+                                     const int<0,15>, const int<0,3>);
     PMXVBF16GER2PP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvbf16ger2pp_internal (v512, vuc, vuc, const int<4>, \
-                                              const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvbf16ger2pp_internal (v512, vuc, vuc, \
+                                              const int<0,15>, \
+                                              const int<0,15>, const int<0,3>);
     PMXVBF16GER2PP_INTERNAL mma_pmxvbf16ger2pp {mma,quad}
 
-  void __builtin_mma_pmxvf16ger2 (v512 *, vuc, vuc, const int<4>, \
-                                  const int<4>, const int<2>);
+  void __builtin_mma_pmxvf16ger2 (v512 *, vuc, vuc, const int<0,15>, \
+                                  const int<0,15>, const int<0,3>);
     PMXVF16GER2 nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvf16ger2_internal (vuc, vuc, const int<4>, \
-                                           const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvf16ger2_internal (vuc, vuc, const int<0,15>, \
+                                           const int<0,15>, const int<0,3>);
     PMXVF16GER2_INTERNAL mma_pmxvf16ger2 {mma}
 
-  void __builtin_mma_pmxvf16ger2nn (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<2>);
+  void __builtin_mma_pmxvf16ger2nn (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,3>);
     PMXVF16GER2NN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf16ger2nn_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvf16ger2nn_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,3>);
     PMXVF16GER2NN_INTERNAL mma_pmxvf16ger2nn {mma,quad}
 
-  void __builtin_mma_pmxvf16ger2np (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<2>);
+  void __builtin_mma_pmxvf16ger2np (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,3>);
     PMXVF16GER2NP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf16ger2np_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvf16ger2np_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,3>);
     PMXVF16GER2NP_INTERNAL mma_pmxvf16ger2np {mma,quad}
 
-  void __builtin_mma_pmxvf16ger2pn (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<2>);
+  void __builtin_mma_pmxvf16ger2pn (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,3>);
     PMXVF16GER2PN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf16ger2pn_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvf16ger2pn_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,3>);
     PMXVF16GER2PN_INTERNAL mma_pmxvf16ger2pn {mma,quad}
 
-  void __builtin_mma_pmxvf16ger2pp (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<2>);
+  void __builtin_mma_pmxvf16ger2pp (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,3>);
     PMXVF16GER2PP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf16ger2pp_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvf16ger2pp_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,3>);
     PMXVF16GER2PP_INTERNAL mma_pmxvf16ger2pp {mma,quad}
 
-  void __builtin_mma_pmxvf32ger (v512 *, vuc, vuc, const int<4>, const int<4>);
+  void __builtin_mma_pmxvf32ger (v512 *, vuc, vuc, const int<0,15>, \
+                                 const int<0,15>);
     PMXVF32GER nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvf32ger_internal (vuc, vuc, const int<4>, \
-                                          const int<4>);
+  v512 __builtin_mma_pmxvf32ger_internal (vuc, vuc, const int<0,15>, \
+                                          const int<0,15>);
     PMXVF32GER_INTERNAL mma_pmxvf32ger {mma}
 
-  void __builtin_mma_pmxvf32gernn (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>);
+  void __builtin_mma_pmxvf32gernn (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>);
     PMXVF32GERNN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf32gernn_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>);
+  v512 __builtin_mma_pmxvf32gernn_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>);
     PMXVF32GERNN_INTERNAL mma_pmxvf32gernn {mma,quad}
 
-  void __builtin_mma_pmxvf32gernp (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>);
+  void __builtin_mma_pmxvf32gernp (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>);
     PMXVF32GERNP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf32gernp_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>);
+  v512 __builtin_mma_pmxvf32gernp_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>);
     PMXVF32GERNP_INTERNAL mma_pmxvf32gernp {mma,quad}
 
-  void __builtin_mma_pmxvf32gerpn (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>);
+  void __builtin_mma_pmxvf32gerpn (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>);
     PMXVF32GERPN nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf32gerpn_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>);
+  v512 __builtin_mma_pmxvf32gerpn_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>);
     PMXVF32GERPN_INTERNAL mma_pmxvf32gerpn {mma,quad}
 
-  void __builtin_mma_pmxvf32gerpp (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>);
+  void __builtin_mma_pmxvf32gerpp (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>);
     PMXVF32GERPP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf32gerpp_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>);
+  v512 __builtin_mma_pmxvf32gerpp_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>);
     PMXVF32GERPP_INTERNAL mma_pmxvf32gerpp {mma,quad}
 
-  void __builtin_mma_pmxvf64ger (v512 *, v256, vuc, const int<4>, \
-                                 const int<2>);
+  void __builtin_mma_pmxvf64ger (v512 *, v256, vuc, const int<0,15>, \
+                                 const int<0,3>);
     PMXVF64GER nothing {mma,pair,mmaint}
 
-  v512 __builtin_mma_pmxvf64ger_internal (v256, vuc, const int<4>, \
-                                          const int<2>);
+  v512 __builtin_mma_pmxvf64ger_internal (v256, vuc, const int<0,15>, \
+                                          const int<0,3>);
     PMXVF64GER_INTERNAL mma_pmxvf64ger {mma,pair}
 
-  void __builtin_mma_pmxvf64gernn (v512 *, v256, vuc, const int<4>, \
-                                   const int<2>);
+  void __builtin_mma_pmxvf64gernn (v512 *, v256, vuc, const int<0,15>, \
+                                   const int<0,3>);
     PMXVF64GERNN nothing {mma,pair,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf64gernn_internal (v512, v256, vuc, const int<4>, \
-                                            const int<2>);
+  v512 __builtin_mma_pmxvf64gernn_internal (v512, v256, vuc, const int<0,15>, \
+                                            const int<0,3>);
     PMXVF64GERNN_INTERNAL mma_pmxvf64gernn {mma,pair,quad}
 
-  void __builtin_mma_pmxvf64gernp (v512 *, v256, vuc, const int<4>, \
-                                   const int<2>);
+  void __builtin_mma_pmxvf64gernp (v512 *, v256, vuc, const int<0,15>, \
+                                   const int<0,3>);
     PMXVF64GERNP nothing {mma,pair,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf64gernp_internal (v512, v256, vuc, const int<4>, \
-                                            const int<2>);
+  v512 __builtin_mma_pmxvf64gernp_internal (v512, v256, vuc, const int<0,15>, \
+                                            const int<0,3>);
     PMXVF64GERNP_INTERNAL mma_pmxvf64gernp {mma,pair,quad}
 
-  void __builtin_mma_pmxvf64gerpn (v512 *, v256, vuc, const int<4>, \
-                                   const int<2>);
+  void __builtin_mma_pmxvf64gerpn (v512 *, v256, vuc, const int<0,15>, \
+                                   const int<0,3>);
     PMXVF64GERPN nothing {mma,pair,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf64gerpn_internal (v512, v256, vuc, const int<4>, \
-                                            const int<2>);
+  v512 __builtin_mma_pmxvf64gerpn_internal (v512, v256, vuc, const int<0,15>, \
+                                            const int<0,3>);
     PMXVF64GERPN_INTERNAL mma_pmxvf64gerpn {mma,pair,quad}
 
-  void __builtin_mma_pmxvf64gerpp (v512 *, v256, vuc, const int<4>, \
-                                   const int<2>);
+  void __builtin_mma_pmxvf64gerpp (v512 *, v256, vuc, const int<0,15>, \
+                                   const int<0,3>);
     PMXVF64GERPP nothing {mma,pair,quad,mmaint}
 
-  v512 __builtin_mma_pmxvf64gerpp_internal (v512, v256, vuc, const int<4>, \
-                                            const int<2>);
+  v512 __builtin_mma_pmxvf64gerpp_internal (v512, v256, vuc, const int<0,15>, \
+                                            const int<0,3>);
     PMXVF64GERPP_INTERNAL mma_pmxvf64gerpp {mma,pair,quad}
 
-  void __builtin_mma_pmxvi16ger2 (v512 *, vuc, vuc, const int<4>, \
-                                  const int<4>, const int<2>);
+  void __builtin_mma_pmxvi16ger2 (v512 *, vuc, vuc, const int<0,15>, \
+                                  const int<0,15>, const int<0,3>);
     PMXVI16GER2 nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvi16ger2_internal (vuc, vuc, const int<4>, \
-                                           const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvi16ger2_internal (vuc, vuc, const int<0,15>, \
+                                           const int<0,15>, const int<0,3>);
     PMXVI16GER2_INTERNAL mma_pmxvi16ger2 {mma}
 
-  void __builtin_mma_pmxvi16ger2pp (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<2>);
+  void __builtin_mma_pmxvi16ger2pp (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,3>);
     PMXVI16GER2PP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvi16ger2pp_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvi16ger2pp_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,3>);
     PMXVI16GER2PP_INTERNAL mma_pmxvi16ger2pp {mma,quad}
 
-  void __builtin_mma_pmxvi16ger2s (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>, const int<2>);
+  void __builtin_mma_pmxvi16ger2s (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>, const int<0,3>);
     PMXVI16GER2S nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvi16ger2s_internal (vuc, vuc, const int<4>, \
-                                            const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvi16ger2s_internal (vuc, vuc, const int<0,15>, \
+                                            const int<0,15>, const int<0,3>);
     PMXVI16GER2S_INTERNAL mma_pmxvi16ger2s {mma}
 
-  void __builtin_mma_pmxvi16ger2spp (v512 *, vuc, vuc, const int<4>, \
-                                     const int<4>, const int<2>);
+  void __builtin_mma_pmxvi16ger2spp (v512 *, vuc, vuc, const int<0,15>, \
+                                     const int<0,15>, const int<0,3>);
     PMXVI16GER2SPP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvi16ger2spp_internal (v512, vuc, vuc, const int<4>, \
-                                              const int<4>, const int<2>);
+  v512 __builtin_mma_pmxvi16ger2spp_internal (v512, vuc, vuc, \
+                                              const int<0,15>, \
+                                              const int<0,15>, const int<0,3>);
     PMXVI16GER2SPP_INTERNAL mma_pmxvi16ger2spp {mma,quad}
 
-  void __builtin_mma_pmxvi4ger8 (v512 *, vuc, vuc, const int<4>, \
-                                 const int<4>, const int<8>);
+  void __builtin_mma_pmxvi4ger8 (v512 *, vuc, vuc, const int<0,15>, \
+                                 const int<0,15>, const int<0,255>);
     PMXVI4GER8 nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvi4ger8_internal (vuc, vuc, const int<4>, \
-                                          const int<4>, const int<8>);
+  v512 __builtin_mma_pmxvi4ger8_internal (vuc, vuc, const int<0,15>, \
+                                          const int<0,15>, const int<0,255>);
     PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma}
 
-  void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>, const int<4>);
+  void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>, const int<0,15>);
     PMXVI4GER8PP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>, const int<4>);
+  v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>, const int<0,15>);
     PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad}
 
-  void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \
-                                 const int<4>, const int<4>);
+  void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<0,15>, \
+                                 const int<0,15>, const int<0,15>);
     PMXVI8GER4 nothing {mma,mmaint}
 
-  v512 __builtin_mma_pmxvi8ger4_internal (vuc, vuc, const int<4>, \
-                                          const int<4>, const int<4>);
+  v512 __builtin_mma_pmxvi8ger4_internal (vuc, vuc, const int<0,15>, \
+                                          const int<0,15>, const int<0,15>);
     PMXVI8GER4_INTERNAL mma_pmxvi8ger4 {mma}
 
-  void __builtin_mma_pmxvi8ger4pp (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>, const int<4>);
+  void __builtin_mma_pmxvi8ger4pp (v512 *, vuc, vuc, const int<0,15>, \
+                                   const int<0,15>, const int<0,15>);
     PMXVI8GER4PP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvi8ger4pp_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>, const int<4>);
+  v512 __builtin_mma_pmxvi8ger4pp_internal (v512, vuc, vuc, const int<0,15>, \
+                                            const int<0,15>, const int<0,15>);
     PMXVI8GER4PP_INTERNAL mma_pmxvi8ger4pp {mma,quad}
 
-  void __builtin_mma_pmxvi8ger4spp (v512 *, vuc, vuc, const int<4>, \
-                                    const int<4>, const int<4>);
+  void __builtin_mma_pmxvi8ger4spp (v512 *, vuc, vuc, const int<0,15>, \
+                                    const int<0,15>, const int<0,15>);
     PMXVI8GER4SPP nothing {mma,quad,mmaint}
 
-  v512 __builtin_mma_pmxvi8ger4spp_internal (v512, vuc, vuc, const int<4>, \
-                                             const int<4>, const int<4>);
+  v512 __builtin_mma_pmxvi8ger4spp_internal (v512, vuc, vuc, const int<0,15>, \
+                                             const int<0,15>, const int<0,15>);
     PMXVI8GER4SPP_INTERNAL mma_pmxvi8ger4spp {mma,quad}
 
   void __builtin_mma_xvbf16ger2 (v512 *, vuc, vuc);
@@ -4095,7 +4107,7 @@ 
   void __builtin_vsx_disassemble_pair (void *, v256 *);
     DISASSEMBLE_PAIR_V nothing {mma,pair,mmaint}
 
-  vuc __builtin_vsx_disassemble_pair_internal (v256, const int<2>);
+  vuc __builtin_vsx_disassemble_pair_internal (v256, const int<0,3>);
     DISASSEMBLE_PAIR_V_INTERNAL vsx_disassemble_pair {mma}
 
   v256 __builtin_vsx_lxvp (unsigned long, const v256 *);
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
index 2e3643c6c09..fcf6a9dca79 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
@@ -13,6 +13,6 @@  test_data_class (__ieee128 *p, const int condition_flag)
 {
   __ieee128 source = *p;
 
-  return scalar_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
index 59f03a30484..9130c9714bf 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
@@ -10,6 +10,6 @@  test_data_class (double *p)
 {
   double source = *p;
 
-  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
index d3d94261d28..b863bb2bc27 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
@@ -10,6 +10,6 @@  test_data_class (float *p)
 {
   float source = *p;
 
-  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
index 210fa411f9e..83ddffa77a3 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
@@ -10,6 +10,6 @@  test_data_class (double *p, const int condition_flag)
 {
   double source = *p;
 
-  return scalar_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
index b66f0a27e8c..101a919c9e4 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
@@ -10,6 +10,6 @@  test_data_class (float *p, const int condition_flag)
 {
   float source = *p;
 
-  return scalar_test_data_class (source, condition_flag);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, condition_flag);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
index cfa9a9c3939..f87851c2c5f 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
@@ -13,6 +13,6 @@  test_data_class (__ieee128 *p)
 
   /* IEEE 128-bit floating point operations are only supported
      on 64-bit targets.  */
-  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return scalar_test_data_class (source, 256);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
index 56ce5f9ebe7..448406c0d47 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
@@ -9,5 +9,5 @@  get_data_class_flags (__vector float *p)
 {
   __vector float source = *p;
 
-  return vec_test_data_class (source, 256);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return vec_test_data_class (source, 256);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
index 11624c98a38..64a52a15439 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
@@ -9,5 +9,5 @@  get_data_class_flags (__vector double *p)
 {
   __vector double source = *p;
 
-  return vec_test_data_class (source, 256);	/* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return vec_test_data_class (source, 256);	/* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
index 2c7e9deb7a2..5f35e0e368a 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
@@ -9,5 +9,5 @@  get_data_class_flags (__vector float *p, int condition_flag)
 {
   __vector float source = *p;
 
-  return vec_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return vec_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
index 86eff8d66ba..bda2c6d9db3 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
@@ -9,5 +9,5 @@  get_data_class_flags (__vector double *p, int condition_flag)
 {
   __vector double source = *p;
 
-  return vec_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a 7-bit unsigned literal" } */
+  return vec_test_data_class (source, condition_flag); /* { dg-error "argument 2 must be a literal between 0 and 127, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
index 350b4c10205..4feb3918767 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt_dd (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt_dd (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
index 011d20039d0..ef4d6ad707b 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt_dd (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt_dd (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
index 28033dbac18..5a9ab5126fc 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt_td (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt_td (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
index 092b9c0f7c5..f1918a251c2 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt_td (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt_td (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
index 4b72fa8edc3..b353d63f5a5 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
index 15d7a352fdf..464dc66d457 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
index f6ed00a73dd..6e5e07b1c88 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
index 8e3954d6b93..d8760cefc94 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
index f6c0ede46cc..fed06bbbb6c 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
index d24f3982ee9..868146c8f53 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt_dd (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt_dd (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
index b6620c51f2a..de174998d21 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt_dd (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt_dd (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
index dc4c8ecdd00..1e5ff356ceb 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt_td (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt_td (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
index 1aee9efe919..b5f886d861a 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_gt_td (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_gt_td (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
index 6397aae3e56..ad840bf5465 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
index fc6b3568d09..586c86f2ab7 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
index b896865e6bb..dc01b7fc614 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
index edfac68b0e8..9ff41263531 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
index e7b50dc108e..5040ac87ed6 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
index c9431b5ea1a..a79e6b5dbb1 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq_dd (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq_dd (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
index 2fdb58f6748..5e9a93fd05e 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq_dd (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq_dd (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
index 275bf8d0ac2..ec2abc6499f 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq_td (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq_td (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
index e1da3d810ef..6f63d0f831f 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_eq_td (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_eq_td (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
index 44aaab201f9..4786be7bb48 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
index fb3331162c7..c406d4d1ca8 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
index 59471cfb645..d7b3b6f01ac 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
index c9e1721b3d6..bc9ced3ceb0 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
index d0d3f23c853..dcfe162c832 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
index 725cc5432b9..04d950e3df5 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov_dd (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov_dd (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
index c6ffd51d9f4..369312d84ea 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
@@ -8,6 +8,6 @@  int doTestBCDSignificance (_Decimal64 *p, unsigned int significance)
 {
   _Decimal64 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov_dd (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov_dd (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
index d279bfb5751..ca6c739a045 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
@@ -8,7 +8,7 @@  int doTestBCDSignificance (_Decimal128 *p)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov_td (65, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov_td (65, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
index b88b5a86bcb..9ee60cfe8e2 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_ov_td (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_ov_td (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
index b2073f56b05..9a9ff3899f2 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
@@ -8,5 +8,5 @@  int doTestBCDSignificance (_Decimal128 *p, unsigned int significance)
 {
   _Decimal128 source = *p;
 
-  return __builtin_dfp_dtstsfi_lt (significance, source);	/* { dg-error "argument 1 must be a 6-bit unsigned literal" } */
+  return __builtin_dfp_dtstsfi_lt (significance, source);	/* { dg-error "argument 1 must be a literal between 0 and 63, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-1.c b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c
index f37f1f169a2..7198611258f 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr80315-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c
@@ -10,6 +10,6 @@  main()
   int mask;
 
   /* Argument 2 must be 0 or 1.  Argument 3 must be in range 0..15.  */
-  res = __builtin_crypto_vshasigmaw (test, 1, 0xff); /* { dg-error {argument 3 must be a 4-bit unsigned literal} } */
+  res = __builtin_crypto_vshasigmaw (test, 1, 0xff); /* { dg-error {argument 3 must be a literal between 0 and 15, inclusive} } */
   return 0;
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-2.c b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c
index 0819a0511b7..0f77f775ad3 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr80315-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c
@@ -10,6 +10,6 @@  main ()
   int mask;
 
   /* Argument 2 must be 0 or 1.  Argument 3 must be in range 0..15.  */
-  res = __builtin_crypto_vshasigmad (test, 1, 0xff); /* { dg-error {argument 3 must be a 4-bit unsigned literal} } */
+  res = __builtin_crypto_vshasigmad (test, 1, 0xff); /* { dg-error {argument 3 must be a literal between 0 and 15, inclusive} } */
   return 0;
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-3.c b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c
index cc2e46cf5cb..398c512274d 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr80315-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c
@@ -12,6 +12,6 @@  main ()
   int mask;
 
   /* Argument 2 must be 0 or 1.  Argument 3 must be in range 0..15.  */
-  res = vec_shasigma_be (test, 1, 0xff); /* { dg-error {argument 3 must be a 4-bit unsigned literal} } */
+  res = vec_shasigma_be (test, 1, 0xff); /* { dg-error {argument 3 must be a literal between 0 and 15, inclusive} } */
   return res;
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-4.c b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c
index ac12910741b..4326ff64c18 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr80315-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c
@@ -12,6 +12,6 @@  main ()
   int mask;
 
   /* Argument 2 must be 0 or 1.  Argument 3 must be in range 0..15.  */
-  res = vec_shasigma_be (test, 1, 0xff); /* { dg-error {argument 3 must be a 4-bit unsigned literal} } */
+  res = vec_shasigma_be (test, 1, 0xff); /* { dg-error {argument 3 must be a literal between 0 and 15, inclusive} } */
   return res;
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr82015.c b/gcc/testsuite/gcc.target/powerpc/pr82015.c
index ec939e96bb8..40f1c7d2a5c 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr82015.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr82015.c
@@ -5,10 +5,10 @@ 
 
 unsigned long foo_11(__vector __int128_t *p)
 {
-  return __builtin_unpack_vector_int128(*p, 11); /* { dg-error "argument 2 must be a 1-bit unsigned literal" } */
+  return __builtin_unpack_vector_int128(*p, 11); /* { dg-error "argument 2 must be a literal between 0 and 1, inclusive" } */
 }
 
 unsigned long foo_n(__vector __int128_t *p, unsigned long n)
 {
-  return __builtin_unpack_vector_int128(*p, n);	/* { dg-error "argument 2 must be a 1-bit unsigned literal" } */
+  return __builtin_unpack_vector_int128(*p, n);	/* { dg-error "argument 2 must be a literal between 0 and 1, inclusive" } */
 }
diff --git a/gcc/testsuite/gcc.target/powerpc/pr91903.c b/gcc/testsuite/gcc.target/powerpc/pr91903.c
index 3045d07da7d..7f9470ee905 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr91903.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr91903.c
@@ -12,62 +12,62 @@  vector signed int retsi;
 
 void test_int(vector signed int a, const int b)
 {
-	retf = vec_ctf(a,b); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-1); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-31); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retf = vec_ctf(a,b); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-1); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-31); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 	retf = vec_ctf(a,1);
 	retf = vec_ctf(a,31);
-	retf = vec_ctf(a,32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,42); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retf = vec_ctf(a,32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,42); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 }
 
 void test_uint(vector unsigned int a, const int b)
 {
-	retf = vec_ctf(a,b); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-1); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-31); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,-32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retf = vec_ctf(a,b); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-1); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-31); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,-32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 	retf = vec_ctf(a,1);
 	retf = vec_ctf(a,31);
-	retf = vec_ctf(a,32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retf = vec_ctf(a,42); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retf = vec_ctf(a,32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retf = vec_ctf(a,42); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 }
 
 void test_longlong(vector signed long long a, const int b,int x)
 {
-	retd = vec_ctf(a,b); /* { dg-error "argument 2 must be a 5-bit unsigned literal"  } */
-	retd = vec_ctf(a,-1); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,-31); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,-32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retd = vec_ctf(a,b); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive"  } */
+	retd = vec_ctf(a,-1); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,-31); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,-32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 	retd = vec_ctf(a,1);
 	retd = vec_ctf(a,31);
-	retd = vec_ctf(a,32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,42); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retd = vec_ctf(a,32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,42); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 }
 
 void test_ulonglong(vector unsigned long long a, const int b,int x)
 {
-	retd = vec_ctf(a,b); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,-1); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,-31); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,-32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retd = vec_ctf(a,b); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,-1); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,-31); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,-32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 	retd = vec_ctf(a,1);
 	retd = vec_ctf(a,31);
-	retd = vec_ctf(a,32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retd = vec_ctf(a,42); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retd = vec_ctf(a,32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retd = vec_ctf(a,42); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 }
 
 
 void test_cts_1(vector float a, const int b)
 {
-	retsi = vec_cts(a,b); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retsi = vec_cts(a,-1); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retsi = vec_cts(a,-31); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retsi = vec_cts(a,-32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retsi = vec_cts(a,b); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retsi = vec_cts(a,-1); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retsi = vec_cts(a,-31); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retsi = vec_cts(a,-32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 	retsi = vec_cts(a,1);
 	retsi = vec_cts(a,31);
-	retsi = vec_cts(a,32); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
-	retsi = vec_cts(a,42); /* { dg-error "argument 2 must be a 5-bit unsigned literal" } */
+	retsi = vec_cts(a,32); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
+	retsi = vec_cts(a,42); /* { dg-error "argument 2 must be a literal between 0 and 31, inclusive" } */
 }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c b/gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
index 10391b71008..62152c677ec 100644
--- a/gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
+++ b/gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
@@ -8,11 +8,11 @@  int main ()
      int arguments.  The builtins __builtin_set_fpscr_rn() also supports a
      variable as an argument but can't test variable value at compile time.  */
 
-  __builtin_mtfsb0(-1);  /* { dg-error "argument 1 must be a 5-bit unsigned literal" } */
-  __builtin_mtfsb0(32);  /* { dg-error "argument 1 must be a 5-bit unsigned literal" } */
+  __builtin_mtfsb0(-1);  /* { dg-error "argument 1 must be a literal between 0 and 31, inclusive" } */
+  __builtin_mtfsb0(32);  /* { dg-error "argument 1 must be a literal between 0 and 31, inclusive" } */
 
-  __builtin_mtfsb1(-1);  /* { dg-error "argument 1 must be a 5-bit unsigned literal" } */
-  __builtin_mtfsb1(32);  /* { dg-error "argument 1 must be a 5-bit unsigned literal" } */ 
+  __builtin_mtfsb1(-1);  /* { dg-error "argument 1 must be a literal between 0 and 31, inclusive" } */
+  __builtin_mtfsb1(32);  /* { dg-error "argument 1 must be a literal between 0 and 31, inclusive" } */ 
 
   __builtin_set_fpscr_rn(-1);  /* { dg-error "argument 1 must be a variable or a literal between 0 and 3, inclusive" } */ 
   __builtin_set_fpscr_rn(4);   /* { dg-error "argument 1 must be a variable or a literal between 0 and 3, inclusive" } */ 
diff --git a/gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-10.c b/gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-10.c
index 35700fcb364..d5ec14cf4ba 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-10.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-10.c
@@ -28,7 +28,7 @@  doTests00000001 (vector unsigned __int128 a_sources [],
 	  vector unsigned __int128 b = b_sources [j];
 	  vector unsigned __int128 c = c_sources [k];
 	  vector unsigned __int128 result;
-	  result = vec_ternarylogic (a, b, c, 0xfff); /* { dg-error "8-bit unsigned literal" } */
+	  result = vec_ternarylogic (a, b, c, 0xfff); /* { dg-error "literal between 0 and 255, inclusive" } */
 	  vector unsigned __int128 intended = (a & b & c);
 	  if (!vector_equal (result, intended))
 	    abort ();
@@ -47,7 +47,7 @@  doTests11100101 (vector unsigned __int128 a_sources [],
 	  vector unsigned __int128 b = b_sources [j];
 	  vector unsigned __int128 c = c_sources [k];
 	  vector unsigned __int128 result;
-	  result = vec_ternarylogic (a, b, c, -1); /* { dg-error "8-bit unsigned literal" } */
+	  result = vec_ternarylogic (a, b, c, -1); /* { dg-error "literal between 0 and 255, inclusive" } */
 	  vector unsigned __int128 intended = { 0 };
 	  // Supposed to be a ? c: nand (b,c)
 	  for (int l = 0; l < 1; l++)
@@ -80,7 +80,7 @@  doTests11110011 (vector unsigned __int128 a_sources [],
 	  vector unsigned __int128 b = b_sources [j];
 	  vector unsigned __int128 c = c_sources [k];
 	  vector unsigned __int128 result;
-	  result = vec_ternarylogic (a, b, c, i);  /* { dg-error "8-bit unsigned literal" } */
+	  result = vec_ternarylogic (a, b, c, i);  /* { dg-error "literal between 0 and 255, inclusive" } */
 	  vector unsigned __int128 intended = { 0 };
 	  for (int i = 0; i < 1; i++)
 	    intended [i] = b [i] | ~(a [i] & c [i]);