c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / conv-vectorize-2.c
blobe189b793c8c3df4084b27301a134a5dd014a96bb
1 /* { dg-options "-O2 -ftree-vectorize -mvsx -fno-vect-cost-model" } */
2 /* { dg-require-effective-target powerpc_vsx } */
4 /* Test vectorizer can exploit vector conversion instructions to convert
5 float to unsigned/signed long long. */
7 #include <stddef.h>
9 #define SIZE 32
10 #define ALIGN 16
12 float sflt_array[SIZE] __attribute__ ((__aligned__ (ALIGN)));
13 float uflt_array[SIZE] __attribute__ ((__aligned__ (ALIGN)));
15 unsigned long long ulong_array[SIZE] __attribute__ ((__aligned__ (ALIGN)));
16 signed long long slong_array[SIZE] __attribute__ ((__aligned__ (ALIGN)));
18 void
19 convert_float_to_slong (void)
21 size_t i;
23 for (i = 0; i < SIZE; i++)
24 slong_array[i] = (signed long long) sflt_array[i];
27 void
28 convert_float_to_ulong (void)
30 size_t i;
32 for (i = 0; i < SIZE; i++)
33 ulong_array[i] = (unsigned long long) uflt_array[i];
36 /* { dg-final { scan-assembler {\mxvcvspsxds\M} } } */
37 /* { dg-final { scan-assembler {\mxvcvspuxds\M} } } */