Viewing file: vec-nnpa-fp16-convert.c (1013 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do run } */ /* { dg-require-effective-target s390_nnpa } */ /* { dg-options "-O3 -mzarch -march=arch14 -mzvector --save-temps" } */
#include <vecintrin.h>
int main () { vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f };
vector short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0);
vector short int tmp2 = vec_convert_to_fp16 (tmp1, 0); vector short int tmp3 = vec_convert_from_fp16 (tmp2, 0);
vector float fp1_ret = vec_extend_to_fp32_hi (tmp3, 0); vector float fp2_ret = vec_extend_to_fp32_lo (tmp3, 0);
if (vec_any_ne (fp1, fp1_ret)) __builtin_abort ();
if (vec_any_ne (fp2, fp2_ret)) __builtin_abort ();
return 0; }
/* { dg-final { scan-assembler-times "vcrnf\t" 1 } } */ /* { dg-final { scan-assembler-times "vcfn\t" 1 } } */ /* { dg-final { scan-assembler-times "vcnf\t" 1 } } */ /* { dg-final { scan-assembler-times "vclfnh\t" 1 } } */ /* { dg-final { scan-assembler-times "vclfnl\t" 1 } } */
|