Commit eb1f7a0a by Bill Schmidt Committed by William Schmidt

re PR target/63335 (GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle])

[gcc]

2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63335
	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
	Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.

[gcc/testsuite]

2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63335
	* gcc.target/powerpc/pr63335.c: New test.

From-SVN: r215599
parent 6597738a
2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/63335
* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
Maxim Kuznetsov <maxim.kuznetsov@intel.com> Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Anna Tikhonova <anna.tikhonova@intel.com> Anna Tikhonova <anna.tikhonova@intel.com>
...@@ -4267,7 +4267,8 @@ altivec_build_resolved_builtin (tree *args, int n, ...@@ -4267,7 +4267,8 @@ altivec_build_resolved_builtin (tree *args, int n,
argument) is reversed. Patch the arguments here before building argument) is reversed. Patch the arguments here before building
the resolved CALL_EXPR. */ the resolved CALL_EXPR. */
if (desc->code == ALTIVEC_BUILTIN_VEC_VCMPGE_P if (desc->code == ALTIVEC_BUILTIN_VEC_VCMPGE_P
&& desc->overloaded_code != ALTIVEC_BUILTIN_VCMPGEFP_P) && desc->overloaded_code != ALTIVEC_BUILTIN_VCMPGEFP_P
&& desc->overloaded_code != VSX_BUILTIN_XVCMPGEDP_P)
{ {
tree t; tree t;
t = args[2], args[2] = args[1], args[1] = t; t = args[2], args[2] = args[1], args[1] = t;
......
2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/63335
* gcc.target/powerpc/pr63335.c: New test.
2014-09-25 Marek Polacek <polacek@redhat.com> 2014-09-25 Marek Polacek <polacek@redhat.com>
PR c++/61945 PR c++/61945
......
/* { dg-do run { target { powerpc64*-*-* } } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mvsx" } */
#include <altivec.h>
void abort (void);
vector double vec = (vector double) {99.0, 99.0};
int main() {
int actual = vec_all_nge(vec, vec);
if ( actual != 0)
abort();
actual = vec_all_nle(vec, vec);
if ( actual != 0)
abort();
actual = vec_any_nge(vec, vec);
if ( actual != 0)
abort();
actual = vec_any_nle(vec, vec);
if ( actual != 0)
abort();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment