This is the mail archive of the
mailing list for the GCC project.
Re: Stricter implicit conversions between vectors, revised patch
- From: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- To: Mark Shinwell <shinwell at codesourcery dot com>
- Cc: gcc patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 22 Dec 2006 11:17:26 +0100
- Subject: Re: Stricter implicit conversions between vectors, revised patch
- References: <458ABCF8.email@example.com>
Paulo, there is an outstanding modification to altivec.h -- see below -- of
which I am suspicious. For some reason __builtin_altivec_vcmpgefp is
still being defined as returning vector signed int even though, as far as
I can see, it should be returning vector bool int as required for the
return type of vec_cmple.
Your AltiVec changes seem ok to me; see PR30210 (where you're already
CCed anyway) for the gory details about __builtin_vec_* versus
__builtin_altivec_* and why __builtin_altivec_vcmpgefp does not return a
vector bool int.
So, I think your patch is correct, except that you also have to change
the corresponding C++ code, which is quite wrong (predicates are defined
as templates, and this has let a wrong name through):
- __builtin_altivec_cmpge (a2, a1))
+ __builtin_vec_cmpge (a2, a1))
This patch exhibits no changes in testsuite results with all default
languages on x86_64-unknown-linux-gnu. I haven't quite reached this
on powerpc64-unknown-linux-gnu but I think the only outstanding problem
is due to this vcmpgefp issue.
What is this problem?