On Tue, 11 Apr 2023, Richard Sandiford wrote:

> <juzhe.zh...@rivai.ai> writes:
> > ARM SVE has?svint8_t, svint8x2_t, svint8x3_t, svint8x4_t
> > As far as I known, they don't have tuple type for partial vector.
> 
> Yeah, there are no separate types for partial vectors, but there
> are separate modes.  E.g. VNx2QI is a partial vector of QIs,
> with each QI stored in a 64-bit container.
> 
> I agree with all the comments about the danger of growing the number of
> modes too much.  But it looks like rtx_def should be easy to rearrange.
> Unless I'm missing something, there are less than 256 rtx codes at
> present.  So one simple option would be to make the code 8 bits and
> the machine_mode 16 bits (and swap them, so that they stay well-aligned
> wrt their size).

But then the bigger issue is tree_type_common where we agreed to
bump precision from 10 to 16 bits, with bumping machine_mode from
8 to 16 we then are left with only 3 spare bits from 15 now - if
the comments are correct.  In tree_decl_common we have 13 unused bits.

IRA allocno would also increase and it's hard_regno field looks
suspiciously unaligned already (unless unsigned/signed re-aligns
bitfields).

> That of course would create new problem if we want more than 256 codes
> in future.  But then there would be the option of a non-power-of-2
> split (12/12 or whatever).  Also, it's possible to multiplex operations
> into a single code by adding an extra operand, whereas it's harder to
> multiplex modes.
> 
> Thanks,
> Richard
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg,
Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman;
HRB 36809 (AG Nuernberg)

Reply via email to