#include <stdio.h>#if defined __F16C__ || (defined _MSC_VER && _MSC_VER >= 1700)#include <immintrin.h>inttest(){constfloatsrc[]={0.0f,0.0f,0.0f,0.0f};shortdst[8];__m128v_src=_mm_load_ps(src);__m128iv_dst=_mm_cvtps_ph(v_src,0);_mm_storel_epi64((__m128i*)dst,v_dst);return(int)dst[0];}#elif defined __GNUC__ && (defined __arm__ || defined __aarch64__)#include "arm_neon.h"inttest(){constfloatsrc[]={0.0f,0.0f,0.0f,0.0f};shortdst[8];float32x4_tv_src=*(float32x4_t*)src;float16x4_tv_dst=vcvt_f16_f32(v_src);*(float16x4_t*)dst=v_dst;return(int)dst[0];}#else#error "FP16 is not supported"#endifintmain(){printf("%d\n",test());return0;}