| /* { dg-do compile { target lp64 } } */ |
| /* { dg-require-effective-target powerpc_p9vector_ok } */ |
| /* { dg-options "-mdejagnu-cpu=power9 -O2" } */ |
| |
| /* Note that for unsigned cases, the differences from those ones in |
| p9-fpcvt-2.c is that they will be converted to int implicitly first |
| and then to floating point. */ |
| |
| double sc_df (signed char *p, double df) { return *p + df; } |
| double uc_df (unsigned char *p, double df) { return *p + df; } |
| double ss_df (signed short *p, double df) { return *p + df; } |
| double us_df (unsigned short *p, double df) { return *p + df; } |
| |
| float sc_sf (signed char *p, float sf) { return *p + sf; } |
| float uc_sf (unsigned char *p, float sf) { return *p + sf; } |
| float ss_sf (signed short *p, float sf) { return *p + sf; } |
| float us_sf (unsigned short *p, float sf) { return *p + sf; } |
| |
| /* { dg-final { scan-assembler {\mlxsibzx\M} } } */ |
| /* { dg-final { scan-assembler {\mlxsihzx\M} } } */ |
| /* { dg-final { scan-assembler {\mvextsb2d\M} } } */ |
| /* { dg-final { scan-assembler {\mvextsh2d\M} } } */ |
| /* { dg-final { scan-assembler-not {\mm[tf]vsr} } } */ |