This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


- Since there is on a single acrchitecture using V16SF (sh), shouldn't
it be moved there?

Yes.


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


Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]