| /* 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; |
| } |