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 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.
Jan