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  /* Expected results (16-bit hexadecimal representation).  */
       8  uint16_t expected[] =
       9  {
      10    0x0000 /* 0.000000 */,
      11    0x8000 /* -0.000000 */,
      12    0x42af /* 3.341797 */,
      13    0x5043 /* 34.093750 */,
      14    0xccd2 /* -19.281250 */,
      15    0x3712 /* 0.441895 */,
      16    0x3acc /* 0.849609 */,
      17    0x4848 /* 8.562500 */,
      18    0xcc43 /* -17.046875 */,
      19    0xd65c /* -101.750000 */,
      20    0x4185 /* 2.759766 */,
      21    0xcd39 /* -20.890625 */,
      22    0xd45b /* -69.687500 */,
      23    0x5241 /* 50.031250 */,
      24    0xc675 /* -6.457031 */,
      25    0x4d07 /* 20.109375 */,
      26    0x7c00 /* inf */,
      27    0xfc00 /* -inf */
      28  };
      29  
      30  #define TEST_MSG "VFMSH_F16"
      31  #define INSN_NAME vfmsh_f16
      32  
      33  #define EXPECTED expected
      34  
      35  #define INPUT_TYPE float16_t
      36  #define OUTPUT_TYPE float16_t
      37  #define OUTPUT_TYPE_SIZE 16
      38  
      39  /* Include the template for binary scalar operations.  */
      40  #include "ternary_scalar_op.inc"