blob: 08923b93c7d86a6b666afc3a0bf0651580314302 [file] [log] [blame]
/* { dg-additional-options "-fdump-tree-optimized" } */
#include "tree-vect.h"
#define N 4
int a[N];
int __attribute__ ((noipa))
f1 (void)
{
int b[N] = { 0, 15, 15, 15 }, res = 0;
for (int i = 0; i < N; ++i)
res += a[i] & b[i];
return res;
}
int __attribute__ ((noipa))
f2 (void)
{
int b[N] = { 0, 31, 0, 31 }, res = 0;
for (int i = 0; i < N; ++i)
res += a[i] & b[i];
return res;
}
int __attribute__ ((noipa))
f3 (void)
{
int b[N] = { -1, -1, 0, 0 }, res = 0;
for (int i = 0; i < N; ++i)
res += a[i] & b[i];
return res;
}
int
main ()
{
check_vect ();
for (int i = 0; i < N; ++i)
a[i] = 0xe0 + i;
if (f1 () != (a[1] & 15) + (a[2] & 15) + (a[3] & 15)
|| f2 () != (a[1] & 31) + (a[3] & 31)
|| f3 () != a[0] + a[1])
__builtin_abort ();
return 0;
}