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