1  /* { dg-do run } */
       2  /* { dg-require-effective-target arm_v8_2a_fp16_scalar_hw } */
       3  /* { dg-add-options arm_v8_2a_fp16_scalar }  */
       4  
       5  #include <arm_fp16.h>
       6  
       7  #define INFF __builtin_inf ()
       8  
       9  /* Expected results (16-bit hexadecimal representation).  */
      10  uint16_t expected[] =
      11  {
      12    0x0000 /* 0.000000 */,
      13    0x8000 /* -0.000000 */,
      14    0xc854 /* -8.656250 */,
      15    0x5cd8 /* 310.000000 */,
      16    0x60b0 /* 600.000000 */,
      17    0xa019 /* -0.008003 */,
      18    0xbc9a /* -1.150391 */,
      19    0xc8cf /* -9.617188 */,
      20    0x51fd /* 47.906250 */,
      21    0x4634 /* 6.203125 */,
      22    0xc0d9 /* -2.423828 */,
      23    0x3c9a /* 1.150391 */,
      24    0xc79a /* -7.601562 */,
      25    0x5430 /* 67.000000 */,
      26    0xbfd0 /* -1.953125 */,
      27    0x46ac /* 6.671875 */,
      28    0xfc00 /* -inf */,
      29    0xfc00 /* -inf */
      30  };
      31  
      32  #define TEST_MSG "VMULH_F16"
      33  #define INSN_NAME vmulh_f16
      34  
      35  #define EXPECTED expected
      36  
      37  #define INPUT_TYPE float16_t
      38  #define OUTPUT_TYPE float16_t
      39  #define OUTPUT_TYPE_SIZE 16
      40  
      41  /* Include the template for binary scalar operations.  */
      42  #include "binary_scalar_op.inc"