Viewing file: avx512bw-pr86036.c (1.04 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* 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 (); }
|