1 /* { dg-do compile { target lp64 } } */
2 /* { dg-require-effective-target powerpc_p9vector_ok } */
3 /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
4
5 /* Note that for unsigned cases, the differences from those ones in
6 p9-fpcvt-2.c is that they will be converted to int implicitly first
7 and then to floating point. */
8
9 double sc_df (signed char *p, double df) { return *p + df; }
10 double uc_df (unsigned char *p, double df) { return *p + df; }
11 double ss_df (signed short *p, double df) { return *p + df; }
12 double us_df (unsigned short *p, double df) { return *p + df; }
13
14 float sc_sf (signed char *p, float sf) { return *p + sf; }
15 float uc_sf (unsigned char *p, float sf) { return *p + sf; }
16 float ss_sf (signed short *p, float sf) { return *p + sf; }
17 float us_sf (unsigned short *p, float sf) { return *p + sf; }
18
19 /* { dg-final { scan-assembler {\mlxsibzx\M} } } */
20 /* { dg-final { scan-assembler {\mlxsihzx\M} } } */
21 /* { dg-final { scan-assembler {\mvextsb2d\M} } } */
22 /* { dg-final { scan-assembler {\mvextsh2d\M} } } */
23 /* { dg-final { scan-assembler-not {\mm[tf]vsr} } } */