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 \
>> +;; 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.
Peter