On Tue, 2020-06-16 at 13:59 -0500, Peter Bergner wrote: > On 6/15/20 5:43 PM, will schmidt wrote: > > On Mon, 2020-06-15 at 14:56 -0500, Peter Bergner via Gcc-patches wrote: > > > * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add > > > OPTION_MASK_MMA. > > > (POWERPC_MASKS): Likewise. > > > > Don't see POWERPC_MASKS in the patch here. > > It's this hunk: > > /* Support for a future processor's features. */ > @@ -132,6 +133,7 @@ > | OPTION_MASK_HTM \ > | OPTION_MASK_ISEL \ > | OPTION_MASK_MFCRF \ > + | OPTION_MASK_MMA \ > | OPTION_MASK_MODULO \ > | OPTION_MASK_MULHW \ > | OPTION_MASK_NO_UPDATE \ >
I see it now, my bad. (#define POWERPC_MASKS was outside of the diff context). :-) > > > > > > +;; Vector load/store pair operations > > > > Probably clear later on. First blush and first pass a blurb here to > > clarify MMA, and what the modes are may be useful. > > > > The subsection paragraph from the extend.texi may be a good fit). > > [snip] > > > +;; We need to define an OImode move pattern, even though we don't > > > enable it, > > > +;; because the machine independent parts of the compiler at times > > > uses the > > > +;; large integer modes. > > > +;; > > > +;; If we enable movoi, the compiler will try and use > > > it. Unfortunately, if it > > > +;; is enabled, it will cause problems on little endian systems with > > > code that > > > +;; uses the vector_size attribute, due to endian issues. > > > > So, maybe rearrange as two lines? > > > > Define a (disabled) OImode move pattern so the machine independent > > parts of the compare can use the large integer modes. > > FIXME: If the OImove pattern is enabled, LE systems will have problems > > with the vector_size attribute. > > Ok, I'll take a stab at rewording this. > > > > > +(define_expand "movoi" > > > + [(set (match_operand:OI 0 "nonimmediate_operand") > > > + (match_operand:OI 1 "input_operand"))] > > > + "0" > > > +{ > > > + gcc_unreachable (); > > > +}) > > > > Is it the "0" or the _unreachable() that 'disables' this? > > It's the "0" condition flag that disables it. The gcc_unreachable() call > is just used to verify we never do. Ok, Thanks, -Will > > > Peter >