Power10 Reduced precision outer product operations

Bill Schmidt wschmidt@linux.ibm.com
Mon Jun 22 13:17:09 GMT 2020


On 6/22/20 8:11 AM, Bill Schmidt wrote:
> On 6/22/20 8:04 AM, Alan Modra wrote:
>> On Mon, Jun 22, 2020 at 10:23:54AM +0200, Jan Beulich wrote:
>>> On 11.05.2020 13:31, Alan Modra via Binutils wrote:
>>>> @@ -2252,9 +2310,33 @@ const struct powerpc_operand 
>>>> powerpc_operands[] =
>>>>   #define IX UIM3 + 1
>>>>     { 0x1, 17, NULL, NULL, 0 },
>>>>   +  /* The PMSK field in GER rank 8 prefix instructions. */
>>>> +#define PMSK8 IX + 1
>>>> +  { 0xff, 40, NULL, NULL, 0 },
>>>> +
>>>> +  /* The PMSK field in GER rank 4 prefix instructions.  */
>>>> +#define PMSK4 PMSK8 + 1
>>>> +  { 0xf, 44, NULL, NULL, 0 },
>>>> +
>>>> +  /* The PMSK field in GER rank 2 prefix instructions.  */
>>>> +#define PMSK2 PMSK4 + 1
>>>> +  { 0x3, 46, NULL, NULL, 0 },
>>>> +
>>>> +  /* The XMSK field in GER prefix instructions.  */
>>>> +#define XMSK PMSK2 + 1
>>>> +  { 0xf, 36, NULL, NULL, 0 },
>>>> +
>>>> +  /* The YMSK field in GER prefix instructions.  */
>>>> +#define YMSK XMSK + 1
>>>> +  { 0xf, 32, NULL, NULL, 0 },
>>>> +
>>>> +  /* The YMSK field in 64-bit GER prefix instructions.  */
>>>> +#define YMSK2 YMSK + 1
>>>> +  { 0x3, 34, NULL, NULL, 0 },
>>> While I consider the split between YMSK and YMSK2 reasonable, it does
>>> not look to be in line with the doc: There insns not using all 8 bits
>>> of PMSK indeed get shown as such, while the same isn't true for YMSK.
>>> I wonder if this is a doc shortcoming ...
>> Thanks, yes, it does look a documentation error.  The YMSK field of
>> the pmxvf64ger instructions is indeed only two bits, bit 28 and 29
>> (numbered from msb of 0), with bits 30 and 31 being reserved. The
>> instruction description pseudo code reflects this fact.
>>
>> Bill, see also RFC02610 where the field is correctly shown as two
>> bits.
>>
> Jan, thanks for bringing this to our attention.  I'll notify the owner 
> of the architecture, and this should be fixed in a future version.

Hm.  Actually, Alan, it appears you may have been referencing an older 
version of RFC02610.  The most recent version shows YMSK as bits 28:31.  
I'll ask Brad about the history here and CC you, but it looks to me like 
the binutils implementation may be incorrect.

Bill

>
> Thanks,
> Bill
>


More information about the Binutils mailing list