diff mbox series

[RS6000] VSX_MM_SUFFIX

Message ID 20201022065140.GG4898@bubble.grove.modra.org
State New
Headers show
Series [RS6000] VSX_MM_SUFFIX | expand

Commit Message

Alan Modra Oct. 22, 2020, 6:51 a.m. UTC
gcc.target/powerpc/vsx_mask-count-runnable.c and others
Assembler messages:
Error: unrecognized opcode: `vcntmb<VSX_MM_SUFFIX>'

I'm applying this one as obvious.  Ref
https://gcc.gnu.org/pipermail/gcc-patches/2020-July/549757.html

	* config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
	(vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.

Comments

Carl Love Oct. 22, 2020, 3:58 p.m. UTC | #1
On Thu, 2020-10-22 at 17:21 +1030, Alan Modra wrote:
> gcc.target/powerpc/vsx_mask-count-runnable.c and others
> Assembler messages:
> Error: unrecognized opcode: `vcntmb<VSX_MM_SUFFIX>'
> 
> I'm applying this one as obvious.  Ref
> https://gcc.gnu.org/pipermail/gcc-patches/2020-July/549757.html 
> 
> 	* config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
> 	(vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.
> 
> diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
> index c023bc0baaa..d96269367bf 100644
> --- a/gcc/config/rs6000/vsx.md
> +++ b/gcc/config/rs6000/vsx.md
> @@ -6035,7 +6035,7 @@
>                      (match_operand:QI 2 "const_0_to_1_operand" "n")]
>          UNSPEC_VCNTMB))]
>    "TARGET_POWER10"
> -  "vcntmb<VSX_MM_SUFFIX> %0,%1,%2"
> +  "vcntmb<wd> %0,%1,%2"
>    [(set_attr "type" "vecsimple")])
>  
>  (define_insn "vec_extract_<mode>"
> @@ -6043,7 +6043,7 @@
>  	(unspec:SI [(match_operand:VSX_MM 1 "altivec_register_operand"
> "v")]
>  	UNSPEC_VEXTRACT))]
>    "TARGET_POWER10"
> -  "vextract<VSX_MM_SUFFIX>m %0,%1"
> +  "vextract<wd>m %0,%1"
>    [(set_attr "type" "vecsimple")])
>  
>  (define_insn "vec_expand_<mode>"
> @@ -6051,5 +6051,5 @@
>          (unspec:VSX_MM [(match_operand:VSX_MM 1
> "vsx_register_operand" "v")]
>          UNSPEC_VEXPAND))]
>    "TARGET_POWER10"
> -  "vexpand<VSX_MM_SUFFIX>m %0,%1"
> +  "vexpand<wd>m %0,%1"
>    [(set_attr "type" "vecsimple")])
> 

Alan:

OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
happed to it.  Thanks.

                Carl
Segher Boessenkool Oct. 22, 2020, 4:03 p.m. UTC | #2
On Thu, Oct 22, 2020 at 08:58:10AM -0700, Carl Love wrote:
> OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
> happed to it.  Thanks.

It never existed on trunk.  Please always regstrap patches on trunk
before committing.  It feels unnecessary at times, but now you know
why :-)


Segher
Alan Modra Oct. 22, 2020, 11:11 p.m. UTC | #3
On Thu, Oct 22, 2020 at 11:03:14AM -0500, Segher Boessenkool wrote:
> On Thu, Oct 22, 2020 at 08:58:10AM -0700, Carl Love wrote:
> > OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
> > happed to it.  Thanks.
> 
> It never existed on trunk.  Please always regstrap patches on trunk
> before committing.  It feels unnecessary at times, but now you know
> why :-)

Regression testing wouldn't have caught the problem, unless Carl had
done so on power10.  "dg_do compile" tests don't run the assembler,
and "dg_do run" tests with "dg_require_effective_target power10_hw" do
nothing at all if not on power10 hardware.  The single test that might
have caught the problem, vec-splati-runnable.c wasn't even compiled.
That's why I submitted
https://gcc.gnu.org/pipermail/gcc-patches/2020-October/556757.html
Segher Boessenkool Oct. 23, 2020, 9:06 p.m. UTC | #4
On Fri, Oct 23, 2020 at 09:41:30AM +1030, Alan Modra wrote:
> On Thu, Oct 22, 2020 at 11:03:14AM -0500, Segher Boessenkool wrote:
> > On Thu, Oct 22, 2020 at 08:58:10AM -0700, Carl Love wrote:
> > > OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
> > > happed to it.  Thanks.
> > 
> > It never existed on trunk.  Please always regstrap patches on trunk
> > before committing.  It feels unnecessary at times, but now you know
> > why :-)
> 
> Regression testing wouldn't have caught the problem, unless Carl had
> done so on power10.

"regstrap" is "bootstrap + regression check".  It won't bootstrap (won't
cross build even afaics?)


Segher
Alan Modra Oct. 24, 2020, 4:29 a.m. UTC | #5
On Fri, Oct 23, 2020 at 04:06:57PM -0500, Segher Boessenkool wrote:
> On Fri, Oct 23, 2020 at 09:41:30AM +1030, Alan Modra wrote:
> > On Thu, Oct 22, 2020 at 11:03:14AM -0500, Segher Boessenkool wrote:
> > > On Thu, Oct 22, 2020 at 08:58:10AM -0700, Carl Love wrote:
> > > > OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
> > > > happed to it.  Thanks.
> > > 
> > > It never existed on trunk.  Please always regstrap patches on trunk
> > > before committing.  It feels unnecessary at times, but now you know
> > > why :-)
> > 
> > Regression testing wouldn't have caught the problem, unless Carl had
> > done so on power10.
> 
> "regstrap" is "bootstrap + regression check".  It won't bootstrap (won't
> cross build even afaics?)

Those instructions aren't generated, we don't see them anywhere on a
power10 all-lang bootstrap except in one testcase designed to exercise
them.
Segher Boessenkool Oct. 24, 2020, 5:31 p.m. UTC | #6
On Sat, Oct 24, 2020 at 02:59:34PM +1030, Alan Modra wrote:
> On Fri, Oct 23, 2020 at 04:06:57PM -0500, Segher Boessenkool wrote:
> > On Fri, Oct 23, 2020 at 09:41:30AM +1030, Alan Modra wrote:
> > > On Thu, Oct 22, 2020 at 11:03:14AM -0500, Segher Boessenkool wrote:
> > > > On Thu, Oct 22, 2020 at 08:58:10AM -0700, Carl Love wrote:
> > > > > OK, looks like VSX_MM_SUFFIX doesn't exist anymore.  Don't know what
> > > > > happed to it.  Thanks.
> > > > 
> > > > It never existed on trunk.  Please always regstrap patches on trunk
> > > > before committing.  It feels unnecessary at times, but now you know
> > > > why :-)
> > > 
> > > Regression testing wouldn't have caught the problem, unless Carl had
> > > done so on power10.
> > 
> > "regstrap" is "bootstrap + regression check".  It won't bootstrap (won't
> > cross build even afaics?)
> 
> Those instructions aren't generated, we don't see them anywhere on a
> power10 all-lang bootstrap except in one testcase designed to exercise
> them.

But that is completely not relevant :-)

If you use a macro that doesn't exist, the compiler simply does not
build!


Segher
Alan Modra Oct. 25, 2020, 1:25 a.m. UTC | #7
On Sat, Oct 24, 2020 at 12:31:43PM -0500, Segher Boessenkool wrote:
> On Sat, Oct 24, 2020 at 02:59:34PM +1030, Alan Modra wrote:
> > Those instructions aren't generated, we don't see them anywhere on a
> > power10 all-lang bootstrap except in one testcase designed to exercise
> > them.
> 
> But that is completely not relevant :-)
> 
> If you use a macro that doesn't exist, the compiler simply does not
> build!

My empirical evidence to the contrary says your theoretical arguments
are invalid.  :-)

$ gcc/xgcc -Bgcc/ -S ~/src/gcc/gcc/testsuite/gcc.target/powerpc/vsx_mask-count-runnable.c -O2 -mcpu=power10
$ grep VSX_MM vsx_mask-count-runnable.s
	vcntmb<VSX_MM_SUFFIX> 9,0,1
	vcntmb<VSX_MM_SUFFIX> 9,0,1
	vcntmb<VSX_MM_SUFFIX> 9,0,1
	vcntmb<VSX_MM_SUFFIX> 9,0,1
Segher Boessenkool Oct. 25, 2020, 10:16 a.m. UTC | #8
On Sun, Oct 25, 2020 at 11:55:39AM +1030, Alan Modra wrote:
> On Sat, Oct 24, 2020 at 12:31:43PM -0500, Segher Boessenkool wrote:
> > On Sat, Oct 24, 2020 at 02:59:34PM +1030, Alan Modra wrote:
> > > Those instructions aren't generated, we don't see them anywhere on a
> > > power10 all-lang bootstrap except in one testcase designed to exercise
> > > them.
> > 
> > But that is completely not relevant :-)
> > 
> > If you use a macro that doesn't exist, the compiler simply does not
> > build!
> 
> My empirical evidence to the contrary says your theoretical arguments
> are invalid.  :-)
> 
> $ gcc/xgcc -Bgcc/ -S ~/src/gcc/gcc/testsuite/gcc.target/powerpc/vsx_mask-count-runnable.c -O2 -mcpu=power10
> $ grep VSX_MM vsx_mask-count-runnable.s
> 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> 	vcntmb<VSX_MM_SUFFIX> 9,0,1

Oh, wow.  How unexpected (to me, anyway).  I'll open a PR.


Segher
Segher Boessenkool Oct. 26, 2020, 6:09 p.m. UTC | #9
On Sun, Oct 25, 2020 at 05:16:10AM -0500, Segher Boessenkool wrote:
> On Sun, Oct 25, 2020 at 11:55:39AM +1030, Alan Modra wrote:
> > > If you use a macro that doesn't exist, the compiler simply does not
> > > build!
> > 
> > My empirical evidence to the contrary says your theoretical arguments
> > are invalid.  :-)
> > 
> > $ gcc/xgcc -Bgcc/ -S ~/src/gcc/gcc/testsuite/gcc.target/powerpc/vsx_mask-count-runnable.c -O2 -mcpu=power10
> > $ grep VSX_MM vsx_mask-count-runnable.s
> > 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> > 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> > 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> > 	vcntmb<VSX_MM_SUFFIX> 9,0,1
> 
> Oh, wow.  How unexpected (to me, anyway).  I'll open a PR.

This is PR97583 now.


Segher
diff mbox series

Patch

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index c023bc0baaa..d96269367bf 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -6035,7 +6035,7 @@ 
                     (match_operand:QI 2 "const_0_to_1_operand" "n")]
         UNSPEC_VCNTMB))]
   "TARGET_POWER10"
-  "vcntmb<VSX_MM_SUFFIX> %0,%1,%2"
+  "vcntmb<wd> %0,%1,%2"
   [(set_attr "type" "vecsimple")])
 
 (define_insn "vec_extract_<mode>"
@@ -6043,7 +6043,7 @@ 
 	(unspec:SI [(match_operand:VSX_MM 1 "altivec_register_operand" "v")]
 	UNSPEC_VEXTRACT))]
   "TARGET_POWER10"
-  "vextract<VSX_MM_SUFFIX>m %0,%1"
+  "vextract<wd>m %0,%1"
   [(set_attr "type" "vecsimple")])
 
 (define_insn "vec_expand_<mode>"
@@ -6051,5 +6051,5 @@ 
         (unspec:VSX_MM [(match_operand:VSX_MM 1 "vsx_register_operand" "v")]
         UNSPEC_VEXPAND))]
   "TARGET_POWER10"
-  "vexpand<VSX_MM_SUFFIX>m %0,%1"
+  "vexpand<wd>m %0,%1"
   [(set_attr "type" "vecsimple")])