blob: b6c82157bba6605c2ae2859f328157bebf8f87b2 [file] [log] [blame]
/* PR target/88547 */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512vl -mavx512bw -mavx512dq" } */
/* { dg-final { scan-assembler-not "vpternlog" } } */
/* { dg-final { scan-assembler-times "vpmovm2b\[\t ]" 4 } } */
/* { dg-final { scan-assembler-times "vpmovm2w\[\t ]" 4 } } */
/* { dg-final { scan-assembler-times "vpmovm2d\[\t ]" 4 } } */
/* { dg-final { scan-assembler-times "vpmovm2q\[\t ]" 4 } } */
/* { dg-final { scan-assembler-times "knotb\[\t ]" 2 } } */
/* { dg-final { scan-assembler-times "knotw\[\t ]" 2 } } */
/* { dg-final { scan-assembler-times "knotd\[\t ]" 2 } } */
/* { dg-final { scan-assembler-times "knotq\[\t ]" 2 } } */
/* { dg-final { scan-assembler-times "vpminud\[\t ]" 2 } } */
/* { dg-final { scan-assembler-times "vpminuq\[\t ]" 2 } } */
/* { dg-final { scan-assembler-not "vpsubd\[\t ]" } } */
/* { dg-final { scan-assembler-not "vpsubq\[\t ]" } } */
typedef signed char v64qi __attribute__((vector_size(64)));
typedef unsigned char v64uqi __attribute__((vector_size(64)));
typedef short v32hi __attribute__((vector_size(64)));
typedef unsigned short v32uhi __attribute__((vector_size(64)));
typedef int v16si __attribute__((vector_size(64)));
typedef unsigned v16usi __attribute__((vector_size(64)));
typedef long long v8di __attribute__((vector_size(64)));
typedef unsigned long long v8udi __attribute__((vector_size(64)));
v64qi
f1 (v64qi x, v64qi y)
{
return x <= y;
}
v64uqi
f2 (v64uqi x, v64uqi y)
{
return x <= y;
}
v64qi
f3 (v64qi x, v64qi y)
{
return x >= y;
}
v64uqi
f4 (v64uqi x, v64uqi y)
{
return x >= y;
}
v32hi
f5 (v32hi x, v32hi y)
{
return x <= y;
}
v32uhi
f6 (v32uhi x, v32uhi y)
{
return x <= y;
}
v32hi
f7 (v32hi x, v32hi y)
{
return x >= y;
}
v32uhi
f8 (v32uhi x, v32uhi y)
{
return x >= y;
}
v16si
f9 (v16si x, v16si y)
{
return x <= y;
}
v16usi
f10 (v16usi x, v16usi y)
{
return x <= y;
}
v16si
f11 (v16si x, v16si y)
{
return x >= y;
}
v16usi
f12 (v16usi x, v16usi y)
{
return x >= y;
}
v8di
f13 (v8di x, v8di y)
{
return x <= y;
}
v8udi
f14 (v8udi x, v8udi y)
{
return x <= y;
}
v8di
f15 (v8di x, v8di y)
{
return x >= y;
}
v8udi
f16 (v8udi x, v8udi y)
{
return x >= y;
}