i386: Adjust rtx cost for imulq and imulw [PR115749]
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr97081-2.c
blob436e897cd2e6a8bb41228cec14480bac88e98952
1 /* PR tree-optimization/97081 */
3 #include "tree-vect.h"
5 unsigned short s[1024];
6 unsigned char c[1024];
8 __attribute__((noipa)) void
9 foo (int n)
11 for (int i = 0; i < 1024; i++)
12 s[i] = (s[i] << n) | (s[i] >> (__SIZEOF_SHORT__ * __CHAR_BIT__ - n));
13 for (int i = 0; i < 1024; i++)
14 c[i] = (c[i] << n) | (c[i] >> (__CHAR_BIT__ - n));
17 int
18 main ()
20 check_vect ();
21 for (int i = 0; i < 1024; i++)
23 s[i] = i;
24 c[i] = i;
26 foo (3);
27 #pragma GCC novector
28 for (int i = 0; i < 1024; i++)
29 if (s[i] != (unsigned short) ((i << 3) | (i >> (__SIZEOF_SHORT__ * __CHAR_BIT__ - 3)))
30 || c[i] != (unsigned char) ((((unsigned char) i) << 3) | (((unsigned char) i) >> (__CHAR_BIT__ - 3))))
31 __builtin_abort ();
32 return 0;