]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.target/aarch64/sve/cond_convert_1.c
2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve / cond_convert_1.c
CommitLineData
03749834 1/* { dg-do compile } */
2/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math" } */
3
4#include <stdint.h>
5
6#define DEF_LOOP(FLOAT_TYPE, INT_TYPE) \
7 void __attribute__ ((noipa)) \
8 test_##INT_TYPE (FLOAT_TYPE *__restrict r, \
9 INT_TYPE *__restrict a, \
10 FLOAT_TYPE *__restrict b, \
11 INT_TYPE *__restrict pred, int n) \
12 { \
13 for (int i = 0; i < n; ++i) \
e7362200 14 { \
15 FLOAT_TYPE bi = b[i]; \
16 r[i] = pred[i] ? (FLOAT_TYPE) a[i] : bi; \
17 } \
03749834 18 }
19
20#define TEST_ALL(T) \
21 T (_Float16, int16_t) \
22 T (_Float16, uint16_t) \
23 T (float, int32_t) \
24 T (float, uint32_t) \
25 T (double, int64_t) \
26 T (double, uint64_t)
27
28TEST_ALL (DEF_LOOP)
29
30/* { dg-final { scan-assembler-times {\tscvtf\tz[0-9]+\.h, p[0-7]/m,} 1 } } */
31/* { dg-final { scan-assembler-times {\tucvtf\tz[0-9]+\.h, p[0-7]/m,} 1 } } */
32/* { dg-final { scan-assembler-times {\tscvtf\tz[0-9]+\.s, p[0-7]/m,} 1 } } */
33/* { dg-final { scan-assembler-times {\tucvtf\tz[0-9]+\.s, p[0-7]/m,} 1 } } */
34/* { dg-final { scan-assembler-times {\tscvtf\tz[0-9]+\.d, p[0-7]/m,} 1 } } */
35/* { dg-final { scan-assembler-times {\tucvtf\tz[0-9]+\.d, p[0-7]/m,} 1 } } */
36
37/* { dg-final { scan-assembler-not {\tmov\tz} } } */
6160faf7 38/* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
03749834 39/* { dg-final { scan-assembler-not {\tsel\t} } } */