blob: 525933863f7d67d76ba7afa4321346efa27ba000 [file] [log] [blame]
/* { dg-additional-options "-O2 -fno-schedule-insns" } */
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
#include "arm_sve.h"
/*
** foo:
** ptrue (p[0-7])\.d, all
** pfalse (p[0-7])\.b
** ptrue (p[0-7])\.s, all
** trn1 (p[0-7])\.d, \2\.d, \3\.d
** trn1 \2\.d, \1\.d, \3\.d
** faddv (h[0-31]), \4\, (z[0-31]).h
** faddv (h[0-31]), \2\, \6\.h
** str \5, [x0]
** str \7, [x0, 2]
** ret
*/
void foo(svfloat16_t in, float16_t *dst) {
const svbool_t pg_q0 = svdupq_n_b16(1, 0, 1, 0, 0, 0, 0, 0);
const svbool_t pg_f0 = svdupq_n_b16(1, 0, 0, 0, 0, 0, 0, 0);
dst[0] = svaddv_f16(pg_f0, in);
dst[1] = svaddv_f16(pg_q0, in);
}