blob: 47685e54f142d297e12ef6525c0ec3c679d30bb1 [file] [log] [blame]
/* PR target/86036 */
/* { dg-do run } */
/* { dg-options "-O -mavx512bw" } */
/* { dg-require-effective-target avx512bw } */
#define AVX512BW
#include "avx512f-helper.h"
typedef unsigned short V __attribute__ ((vector_size (64)));
__attribute__((noipa)) V
foo (V a)
{
return a >= 3;
}
__attribute__((noipa)) V
bar (V a)
{
return a != 0;
}
__attribute__((noipa)) V
baz (V a)
{
return a == 0;
}
void
TEST (void)
{
V a = (V) { 3, 17, 2, 0, 9, 1, 2, 3, 0, 0, 0, 3, 3, 3, 3, 3,
9, 16387, 9, 3, 3, 0, 0, 3, 3, 3, 0, 0, 0, 0, 3, 3 };
V b = foo (a);
V c = (V) { -1, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, -1 };
if (__builtin_memcmp (&b, &c, sizeof (b)))
abort ();
V d = bar (a);
V e = (V) { -1, -1, -1, 0, -1, -1, -1, -1, 0, 0, 0, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, -1 };
if (__builtin_memcmp (&d, &e, sizeof (d)))
abort ();
V f = baz (a);
V g = ~e;
if (__builtin_memcmp (&f, &g, sizeof (f)))
abort ();
}