blob: 66c744ce1c0229966daf05e80d02385aa8cb2338 [file] [log] [blame]
/* { dg-do run } */
/* { dg-require-effective-target arm_v8_2a_fp16_scalar_hw } */
/* { dg-add-options arm_v8_2a_fp16_scalar } */
/* { dg-skip-if "" { arm*-*-* } } */
#include <arm_fp16.h>
/* Input values. */
#define A 13.4
#define B __builtin_inff ()
#define C -34.8
#define D -__builtin_inff ()
#define E 63.1
#define F 0.0
#define G -4.8
#define H 0.0
#define I 0.7
#define J -__builtin_inff ()
#define K 11.23
#define L 98
#define M 87.1
#define N -0.0
#define O -1.1
#define P 7
float16_t input_1[] = { A, B, C, D, I, J, K, L };
float16_t input_2[] = { E, F, G, H, M, N, O, P };
uint16_t expected[] = { 0x629B /* A * E. */,
0x4000 /* FP16_C (2.0f). */,
0x5939 /* C * G. */,
0xC000 /* FP16_C (-2.0f). */,
0x53A0 /* I * M. */,
0x4000 /* FP16_C (2.0f). */,
0xCA2C /* K * O. */,
0x615C /* L * P. */ };
#define TEST_MSG "VMULXH_F16"
#define INSN_NAME vmulxh_f16
#define INPUT_1 input_1
#define INPUT_2 input_2
#define EXPECTED expected
#define INPUT_TYPE float16_t
#define OUTPUT_TYPE float16_t
#define OUTPUT_TYPE_SIZE 16
/* Include the template for unary scalar operations. */
#include "binary_scalar_op.inc"