This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] x86: Expand Broadcast to 3 bits
On Thu, Jul 26, 2018 at 2:21 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>> On 26.07.18 at 11:15, <JBeulich@suse.com> wrote:
>>>>> On 26.07.18 at 00:05, <hongjiu.lu@intel.com> wrote:
>>> --- a/opcodes/i386-opc.h
>>> +++ b/opcodes/i386-opc.h
>>> @@ -561,6 +561,17 @@ enum
>>> #define BOTH_MASKING 3
>>> Masking,
>>>
>>> + /* AVX512 broadcast support. The number of bytes to broadcast is
>>> + 1 << (Broadcast - 1):
>>> + 1: Byte broadcast.
>>> + 2: Word broadcast.
>>> + 3: Dword broadcast.
>>> + 4: Qword broadcast.
>>> + */
>>> +#define BYTE_BROADCAST 1
>>> +#define WORD_BROADCAST 2
>>> +#define DWORD_BROADCAST 3
>>> +#define QWORD_BROADCAST 4
>>
>> I don't understand this: Embedded broadcast so far does not allow
>> byte or word size - why provide for it?
>>
>>> @@ -650,7 +661,7 @@ typedef struct i386_opcode_modifier
>>> unsigned int noavx:1;
>>> unsigned int evex:3;
>>> unsigned int masking:2;
>>> - unsigned int broadcast:1;
>>> + unsigned int broadcast:3;
>>
>> IOW I'm not convinced this is a useful use of the extra storage required.
>> It was for a for a purpose that I've shrunk the field to a single bit
>> recently. I also can't convince myself that overall the change as a whole
>> is a simplification of the assembler.
>
> To expand on this: My recent and ongoing work is, among other things
> like fixing bugs, to eliminate redundancy from the templates. Here you
> re-add redundancy; granted at least you don't do this at the source level.
We are extending broadcast beyond dword and qword.
--
H.J.