This is the mail archive of the gcc-patches@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: Stricter implicit conversions between vectors, revised patch



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):

 __altivec_binary_pred(vec_cmple,
-  __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?


Paolo


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