blob: 4fd3b369d0f45a70c77abeb6670f6438e9e8dba6 [file] [log] [blame]
/* PR target/92686 */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512bw -mno-avx512dq -mno-avx512vl -mno-xop" } */
/* { dg-final { scan-assembler-times "vpcmp\[bwdq\]\[\t ]" 8 } } */
/* { dg-final { scan-assembler-times "vpcmpu\[bwdq\]\[\t ]" 8 } } */
/* { dg-final { scan-assembler-times "vpmovm2\[bw\]\[\t ]" 8 } } */
/* { dg-final { scan-assembler-times "vpternlog\[dq\]\[\t ]" 8 } } */
typedef 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)));
__attribute__((noipa)) v64qi
f1 (v64qi x, v64qi y)
{
return x >= y;
}
__attribute__((noipa)) v64uqi
f2 (v64uqi x, v64uqi y)
{
return x >= y;
}
__attribute__((noipa)) v64qi
f3 (v64qi x, v64qi y)
{
return x <= y;
}
__attribute__((noipa)) v64uqi
f4 (v64uqi x, v64uqi y)
{
return x <= y;
}
__attribute__((noipa)) v32hi
f5 (v32hi x, v32hi y)
{
return x >= y;
}
__attribute__((noipa)) v32uhi
f6 (v32uhi x, v32uhi y)
{
return x >= y;
}
__attribute__((noipa)) v32hi
f7 (v32hi x, v32hi y)
{
return x <= y;
}
__attribute__((noipa)) v32uhi
f8 (v32uhi x, v32uhi y)
{
return x <= y;
}
__attribute__((noipa)) v16si
f9 (v16si x, v16si y)
{
return x >= y;
}
__attribute__((noipa)) v16usi
f10 (v16usi x, v16usi y)
{
return x >= y;
}
__attribute__((noipa)) v16si
f11 (v16si x, v16si y)
{
return x <= y;
}
__attribute__((noipa)) v16usi
f12 (v16usi x, v16usi y)
{
return x <= y;
}
__attribute__((noipa)) v8di
f13 (v8di x, v8di y)
{
return x >= y;
}
__attribute__((noipa)) v8udi
f14 (v8udi x, v8udi y)
{
return x >= y;
}
__attribute__((noipa)) v8di
f15 (v8di x, v8di y)
{
return x <= y;
}
__attribute__((noipa)) v8udi
f16 (v8udi x, v8udi y)
{
return x <= y;
}