blob: 4dfc4a9f3c38f4cdd016a46a03f5a52ea7f55e4f [file] [log] [blame]
/* PR target/93009 */
/* { dg-do run { target { avx512vl } } } */
/* { dg-options "-O2 -mavx512vl" } */
#define AVX512VL
#define AVX512F_LEN 512
#define AVX512F_LEN_HALF 256
#include "avx512f-check.h"
typedef double v2df __attribute__((vector_size (16)));
__attribute__((noipa)) v2df
foo (v2df x, v2df y, double *z)
{
return x * y + (v2df) { z[0], z[0] };
}
__attribute__((noipa)) v2df
bar (v2df x, v2df y, double *z)
{
return y * x + (v2df) { z[0], z[0] };
}
static void
test_256 (void)
{
}
static void
test_128 (void)
{
double z = 5.0;
v2df x = foo ((v2df) { 1.0, 2.0 }, (v2df) { 3.0, 4.0 }, &z);
v2df y = bar ((v2df) { 6.0, 7.0 }, (v2df) { 8.0, 9.0 }, &z);
if (x[0] != 8.0 || x[1] != 13.0 || y[0] != 53.0 || y[1] != 68.0)
abort ();
}