This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/50596] Problems in vectorization of condition expression
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 04 Oct 2011 11:26:51 +0000
- Subject: [Bug tree-optimization/50596] Problems in vectorization of condition expression
- Auto-submitted: auto-generated
- References: <bug-50596-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50596
--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> 2011-10-04 11:26:51 UTC ---
On Tue, 4 Oct 2011, jakub at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50596
>
> --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-10-04 11:13:58 UTC ---
> (In reply to comment #4)
> > I agree with the need to at least support vectorizing loads and stores of
> > 1-bit unsigned precision values. We need to be careful with arithmetic
> > and conversions though (which is why we reject bools right now).
>
> We could represent the arithmetic and conversions (or at least subset thereof)
> using *COND_EXPRs etc. In any case, the bool representation is desirable for
> the scalar loop, so this isn't something we should be doing in ifcvt, it needs
> to be done in the vectorizer itself.
Sure. Note that in GIMPLE
bool = (bool) int;
isn't equivalent to bool = int != 0 but to a truncation to 1-bit
precision. Thus for the truncation a BIT_AND is enough. I'm just
worried about N-precision signed to mode-precision sign-extension
(for the 1-bit case we can use a COND_EXPR, but for more bits
it gets more difficult).
Richard.