Message ID | 20201022065140.GG4898@bubble.grove.modra.org |
---|---|
State | New |
Headers | show |
Series | [RS6000] VSX_MM_SUFFIX | expand |
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
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
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
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
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.
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
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
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
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 --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")])