blob: 9c1ebb7ecbe033822621db80e095ca1ddd781a08 [file] [log] [blame]
/* { dg-do run } */
/* { dg-require-effective-target vect_double } */
#include "tree-vect.h"
double a[2], b[2], c[2];
void __attribute__((noipa)) foo ()
{
double tem0 = a[1] + b[1];
double tem1 = a[0] - b[0];
c[0] = 2. * tem0;
c[1] = 5. * tem1;
}
int main()
{
check_vect ();
a[0] = 1.; a[1] = 3.;
b[0] = -5.; b[1] = 13.;
foo ();
if (c[0] != 32. || c[1] != 30.)
__builtin_abort ();
return 0;
}
/* We'd like to see at most one VEC_PERM_EXPR, not one for a blend
and one for a permute materialized somewhere else. But addsub
pattern recog can likely get in the way here. */
/* { dg-final { scan-tree-dump-times " \[^ \]\+ = VEC_PERM_EXPR" 1 "slp2" } } */