| /* PR target/113033: ICE with vector left rotate */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -mlasx" } */ |
| |
| typedef unsigned __attribute__ ((vector_size (16))) v4si; |
| typedef unsigned __attribute__ ((vector_size (32))) v8si; |
| typedef unsigned long long __attribute__ ((vector_size (16))) v2di; |
| typedef unsigned long long __attribute__ ((vector_size (32))) v4di; |
| |
| #define TEST(tp) \ |
| extern tp data_##tp; \ |
| tp \ |
| test_##tp (int x) \ |
| { \ |
| const int bit = sizeof (data_##tp[0]) * __CHAR_BIT__; \ |
| data_##tp = data_##tp << (x & (bit - 1)) \ |
| | data_##tp >> (bit - x & (bit - 1)); \ |
| } |
| |
| TEST (v4si) |
| TEST (v8si) |
| TEST (v2di) |
| TEST (v4di) |