blob: 91de8344c1f8a6411d18d0e2f97fb0dd2b6f8665 [file] [log] [blame]
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
#include "test_sve_acle.h"
/*
** dupq_1c_f16:
** mov z0\.s, #15360
** ret
*/
TEST_UNIFORM_Z (dupq_1c_f16, svfloat16_t,
z0 = svdupq_n_f16 (1.0, 0, 1.0, 0, 1.0, 0, 1.0, 0),
z0 = svdupq_f16 (1.0, 0, 1.0, 0, 1.0, 0, 1.0, 0));
/*
** dupq_5ic_f16:
** movi v([0-9]+)\.4s, 0x45, lsl 24
** dup z0\.q, z\1\.q\[0\]
** ret
*/
TEST_UNIFORM_Z (dupq_5ic_f16, svfloat16_t,
z0 = svdupq_n_f16 (0, 5.0, 0, 5.0, 0, 5.0, 0, 5.0),
z0 = svdupq_f16 (0, 5.0, 0, 5.0, 0, 5.0, 0, 5.0));
/*
** dupq_m1c_f16:
** movi v([0-9]+)\.4s, 0xbc, lsl 8
** dup z0\.q, z\1\.q\[0\]
** ret
*/
TEST_UNIFORM_Z (dupq_m1c_f16, svfloat16_t,
z0 = svdupq_n_f16 (-1.0, 0, -1.0, 0, -1.0, 0, -1.0, 0),
z0 = svdupq_f16 (-1.0, 0, -1.0, 0, -1.0, 0, -1.0, 0));
/*
** dupq_40p5c_f16:
** mov (w[0-9]+), 20752
** mov z0\.s, \1
** ret
*/
TEST_UNIFORM_Z (dupq_40p5c_f16, svfloat16_t,
z0 = svdupq_n_f16 (40.5, 0, 40.5, 0, 40.5, 0, 40.5, 0),
z0 = svdupq_f16 (40.5, 0, 40.5, 0, 40.5, 0, 40.5, 0));
/*
** dupq_pool_f16:
** ...
** ld1rqh z0\.h, p[0-7]/z, \[x[0-9]+\]
** ret
*/
TEST_UNIFORM_Z (dupq_pool_f16, svfloat16_t,
z0 = svdupq_n_f16 (4.75, 1.0, 9, 77, 5.25, 22, 19, 50),
z0 = svdupq_f16 (4.75, 1.0, 9, 77, 5.25, 22, 19, 50))