blob: f74a117ace4469da26d5c7edecd93c3cee55e2cd [file] [log] [blame]
/* { dg-do compile { target powerpc64*-*-* } } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec -O2 -mvsx -mpower8-vector" } */
/* { dg-final { scan-assembler "vcmpgtsd" } } */
/* { dg-final { scan-assembler-not "xxlnor" } } */
/* Test code in simplify-rtx.c that converts
(!c) != {0,...,0} ? a : b
into
c != {0,...,0} ? b : a */
#include <altivec.h>
volatile vector signed long long x = { 25399, -12900 };
volatile vector signed long long y = { 12178, -9987 };
vector signed long long foo () {
vector bool long long b = vec_cmpge (x, y);
vector signed long long z = vec_sel (y, x, b);
return z;
}