Viewing file: pr98434-1.c (2.35 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-mavx512bw -mavx512vl -O2 -mprefer-vector-width=512" } */ /* { dg-final { scan-assembler-times {vpsravw[\t ]*%xmm} 2 { target { ! ia32 } } } } */ /* { dg-final { scan-assembler-times {vpsrlvw[\t ]*%ymm} 2 } } */ /* { dg-final { scan-assembler-times {vpsllvw[\t ]*%zmm} 2 } } */ /* { dg-final { scan-assembler-times {vpsllvq[\t ]*%xmm} 1 } } */ /* { dg-final { scan-assembler-times {vpsravq[\t ]*%ymm} 1 } } */ /* { dg-final { scan-assembler-times {vpsrlvq[\t ]*%zmm} 1 } } */
int n;
typedef char v8qi __attribute__((vector_size (8))); typedef char v16qi __attribute__((vector_size (16))); typedef char v32qi __attribute__((vector_size (32))); typedef short v8hi __attribute__((vector_size (16))); typedef short v16hi __attribute__((vector_size (32))); typedef short v32hi __attribute__((vector_size (64))); typedef long long v2di __attribute__((vector_size (16))); typedef long long v4di __attribute__((vector_size (32))); typedef long long v8di __attribute__((vector_size (64))); typedef unsigned char v8uqi __attribute__((vector_size (8))); typedef unsigned char v16uqi __attribute__((vector_size (16))); typedef unsigned char v32uqi __attribute__((vector_size (32))); typedef unsigned short v8uhi __attribute__((vector_size (16))); typedef unsigned short v16uhi __attribute__((vector_size (32))); typedef unsigned short v32uhi __attribute__((vector_size (64))); typedef unsigned long long v2udi __attribute__((vector_size (16))); typedef unsigned long long v4udi __attribute__((vector_size (32))); typedef unsigned long long v8udi __attribute__((vector_size (64)));
#define FOO(TYPE, OP, NAME) \ __attribute__((noipa)) TYPE \ foo_##TYPE##_##NAME (TYPE a, TYPE b) \ { \ return a OP b; \ } \
FOO (v8qi, <<, vashl); FOO (v8qi, >>, vashr); FOO (v8uqi, >>, vlshr); FOO (v16qi, <<, vashl); FOO (v16qi, >>, vashr); FOO (v16uqi, >>, vlshr); FOO (v32qi, <<, vashl); FOO (v32qi, >>, vashr); FOO (v32uqi, >>, vlshr); FOO (v8hi, <<, vashl); FOO (v8hi, >>, vashr); FOO (v8uhi, >>, vlshr); FOO (v16hi, <<, vashl); FOO (v16hi, >>, vashr); FOO (v16uhi, >>, vlshr); FOO (v32hi, <<, vashl); FOO (v32hi, >>, vashr); FOO (v32uhi, >>, vlshr); FOO (v2di, <<, vashl); FOO (v2di, >>, vashr); FOO (v2udi, >>, vlshr); FOO (v4di, <<, vashl); FOO (v4di, >>, vashr); FOO (v4udi, >>, vlshr); FOO (v8di, <<, vashl); FOO (v8di, >>, vashr); FOO (v8udi, >>, vlshr);
|