Viewing file: mve-compare-3.c (1.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do assemble } */ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ /* { dg-add-options arm_v8_1m_mve_fp } */ /* { dg-additional-options "-O3 -funsafe-math-optimizations" } */
/* float 16 tests. */
#ifndef ELEM_TYPE #define ELEM_TYPE __fp16 #endif #ifndef INT_ELEM_TYPE #define INT_ELEM_TYPE __INT16_TYPE__ #endif
#define COMPARE(NAME, OP) \ int_vec \ cmp_##NAME##_reg (vec a, vec b) \ { \ return a OP b; \ }
typedef INT_ELEM_TYPE int_vec __attribute__((vector_size(16))); typedef ELEM_TYPE vec __attribute__((vector_size(16)));
COMPARE (eq, ==) COMPARE (ne, !=) COMPARE (lt, <) COMPARE (le, <=) COMPARE (gt, >) COMPARE (ge, >=)
/* eq, ne, lt, le, gt, ge. /* { dg-final { scan-assembler-times {\tvcmp.f16\teq, q[0-9]+, q[0-9]+\n} 1 } } */ /* { dg-final { scan-assembler-times {\tvcmp.f16\tne, q[0-9]+, q[0-9]+\n} 1 } } */ /* { dg-final { scan-assembler-times {\tvcmp.f16\tlt, q[0-9]+, q[0-9]+\n} 1 } } */ /* { dg-final { scan-assembler-times {\tvcmp.f16\tle, q[0-9]+, q[0-9]+\n} 1 } } */ /* { dg-final { scan-assembler-times {\tvcmp.f16\tgt, q[0-9]+, q[0-9]+\n} 1 } } */ /* { dg-final { scan-assembler-times {\tvcmp.f16\tge, q[0-9]+, q[0-9]+\n} 1 } } */
|