(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
advsimd-intrinsics/
vrsqrtsh_f16_1.c
       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  /* { dg-skip-if "" { arm*-*-* } } */
       5  
       6  #include <arm_fp16.h>
       7  
       8  /* Input values.  */
       9  #define A 12.4
      10  #define B -5.8
      11  #define C -3.8
      12  #define D 10
      13  #define E 66.1
      14  #define F 16.1
      15  #define G -4.8
      16  #define H -77
      17  
      18  #define I 0.7
      19  #define J -78
      20  #define K 10.23
      21  #define L 98
      22  #define M 87
      23  #define N -87.81
      24  #define O -1.1
      25  #define P 47.8
      26  
      27  float16_t input_1[] = { A, B, C, D, I, J, K, L };
      28  float16_t input_2[] = { E, F, G, H, M, N, O, P };
      29  uint16_t expected[] = { 0xDE62 /* (3.0f + (-A) * E) / 2.0f.  */,
      30  			0x5206 /* (3.0f + (-B) * F) / 2.0f.  */,
      31  			0xC7A0 /* (3.0f + (-C) * G) / 2.0f.  */,
      32  			0x5E0A /* (3.0f + (-D) * H) / 2.0f.  */,
      33  			0xCF3D /* (3.0f + (-I) * M) / 2.0f.  */,
      34  			0xEAB0 /* (3.0f + (-J) * N) / 2.0f.  */,
      35  			0x471F /* (3.0f + (-K) * O) / 2.0f.  */,
      36  			0xE893 /* (3.0f + (-L) * P) / 2.0f.  */ };
      37  
      38  #define TEST_MSG "VRSQRTSH_F16"
      39  #define INSN_NAME vrsqrtsh_f16
      40  
      41  #define INPUT_1 input_1
      42  #define INPUT_2 input_2
      43  #define EXPECTED expected
      44  
      45  #define INPUT_TYPE float16_t
      46  #define OUTPUT_TYPE float16_t
      47  #define OUTPUT_TYPE_SIZE 16
      48  
      49  /* Include the template for unary scalar operations.  */
      50  #include "binary_scalar_op.inc"