This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: BImode and STORE_VALUE_FLAG
- From: "Paulo J. Matos" <paulo at matos-sorge dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 08 May 2013 22:02:28 +0100
- Subject: Re: BImode and STORE_VALUE_FLAG
- References: <19EB96622A777C4AB91610E763265F461C522A at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <20868 dot 59398 dot 251606 dot 991253 at pilspetsen dot it dot uu dot se> <19EB96622A777C4AB91610E763265F461D0A81 at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <mvm7gj91ssg dot fsf at hawking dot suse dot de> <kmebn5$vne$1 at ger dot gmane dot org> <8761yt5i64 dot fsf at hase dot home>
On 08/05/13 21:29, Andreas Schwab wrote:
"Paulo J. Matos" <paulo@matos-sorge.com> writes:
As I expected. That doesn't sound good
In which way is it not good?
Andreas.
Shouldn't we expect ires to be -1 (STORE_FLAG_VALUE) and therefore the
condition of the if be false if everything is fine?
Otherwise if, independently of STORE_FLAG_VALUE results of comparisons
are 0 or 1, can you explain the gcc test vector-compare-1.c
(http://repo.or.cz/w/official-gcc.git/blob/gcc-4_7-branch:/gcc/testsuite/gcc.c-torture/execute/vector-compare-1.c)?
This compares two vectors and then checks that each of the elements obey
the comparison. If you, like me, have no builtin vector comparisons then
the vector comparison is exploded into the comparison of each of the
elements and respective assignment into the comparison result vector.
Then, what worries me is:
8 if ((res)[__i] != ((i0)[__i] op (i1)[__i] ? -1 : 0)) \
Can you explain the reasoning behind this?
[it just occurred to me that what I might be missing is that scalar
comparisons returns 0 or 1 and vector comparisons returns a vector with
all zeros or a vector with all -1]
Let me add that I just noticed that this test disappeared from HEAD, so
there might be a reason for that. I don't have a cloned rep here so I
can't see why it was removed (or even it was just moved, instead of
removed).
--
PMatos