This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH c/middle-end] Replace vector_opaque_p with a bit in the type
- From: Paolo Bonzini <bonzini at gnu dot org>
- To: Richard Guenther <richard dot guenther at gmail dot com>
- Cc: "Joseph S. Myers" <joseph at codesourcery dot com>, gcc-patches at gcc dot gnu dot org
- Date: Sun, 3 May 2009 17:38:27 +0200
- Subject: Re: [PATCH c/middle-end] Replace vector_opaque_p with a bit in the type
- References: <email@example.com> <49E6007A.firstname.lastname@example.org> <Pine.LNX.email@example.com> <firstname.lastname@example.org> <email@example.com>
> you may also want to provide hints to PR40009 and how the above should
> affect the gimple type system (I think it should not - instead the frontend
> should insert VIEW_CONVERT_EXPRs here).
The front-ends are fine, it's the vectorizer that is sloppy. That's
also why pr39943.c fails only at -O3.
>From a middle-end point of view, it may make sense to avoid
VIEW_CONVERT_EXPRs only in call arguments and return types (i.e. to
mark builtins that accept any vector of the given width). This should
be the only case in which the vectorizer sees opaque types, and
creates type mismatches related to opaque types.
If not possible, however, making an opaque vector type compatible with
other types in any context would be definitely wrong, and the
vectorizer should be fixed.