This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: "exotic" machine modes
- From: "Jan Beulich" <JBeulich at novell dot com>
- To: <bonzini at gnu dot org>,<andrew at walrond dot org>
- Cc: <gcc at gcc dot gnu dot org>,<wilson at specifixinc dot com>
- Date: Mon, 24 May 2004 16:43:45 +0200
- Subject: Re: "exotic" machine modes
>Here is Jan's original message together with my response:
>
>> While putting together a generic vector mode test set for the test
suite
>> I ran into an internal compiler error when dealing with V16SF and
V4DF
>> under -O2 and -O3. While I could obviously make those expected
failures,
>> this doesn't seem correct. Instead, I'd rather put under question
the
>> existence of any of the modes for which int_mode_for_mode() returns
>> BLKmode (which will always trigger the abort()s in
>> extract_bit_field()/store_bit_field()), namely because of the total
>> width exceeding that of TImode. The list of these would be V4DI,
V8SI,
>> V8DI, V4DF, V8SF, V8DF, and V16SF (possibly also XC, TC, and CTI).
Now,
>> for all of these except V4DF and V16SF type nodes are not being
created
>> (at least not in the architecture independent part of the tree,
making
>> the types mostly unusable), preventing the internal error by way of
>> earlier meaningful error messages.
>> The questions thus are:
>> - Since there is no user of V4DF and the compiler doesn't implement
it
>> properly, shouldn't the type node generation for it be eliminated?
>
>As Jim said, it is already gone, but I'm not sure the bug went away as
>well. Indeed it is likely to persist as long as vector operations are
>lowered in the expander.
I can't confirm this. I just checked out a tree without specifying a
release tag (assuming this gave me the mainline sources, as
gcc/version.c seems to confirm), but machmode.def is no different from
the one in 3.4.0. V4DF is thus still present.
>> - Since there is on a single acrchitecture using V16SF (sh),
shouldn't
>> it be moved there?
>
>Yes.
Who would be doing that?
>> - Alternatively, if the compiler intends to generically support
these
>> vector modes, shouldn't the above mentioned abort() cases in
expmed.c be
>> dealt with?
>
>I already have a patch to do so. I need to wait for the tree CFG to
be
>available at -O0 for them to go in, though.
Great.
Thanks, Jan