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 float16_t input[] = { 123.4, 67.8, 34.8, 24.0, 66.1, 144.0, 4.8, 77.0 };
10 uint16_t expected[] = { 0x2DC4 /* FP16_C (1/__builtin_sqrtf (123.4)).  */,
11 			0x2FC8 /* FP16_C (1/__builtin_sqrtf (67.8)).  */,
12 			0x316C /* FP16_C (1/__builtin_sqrtf (34.8)).  */,
13 			0x3288 /* FP16_C (1/__builtin_sqrtf (24.0)).  */,
14 			0x2FDC /* FP16_C (1/__builtin_sqrtf (66.1)).  */,
15 			0x2D54 /* FP16_C (1/__builtin_sqrtf (144.0)).  */,
16 			0x3750 /* FP16_C (1/__builtin_sqrtf (4.8)).  */,
17 			0x2F48 /* FP16_C (1/__builtin_sqrtf (77.0)).  */ };
18 
19 #define TEST_MSG "VRSQRTEH_F16"
20 #define INSN_NAME vrsqrteh_f16
21 
22 #define INPUT input
23 #define EXPECTED expected
24 
25 #define INPUT_TYPE float16_t
26 #define OUTPUT_TYPE float16_t
27 #define OUTPUT_TYPE_SIZE 16
28 
29 /* Include the template for unary scalar operations.  */
30 #include "unary_scalar_op.inc"
31