1 /* PR ipa/99517 */ 2 /* { dg-do run { target avx2 } } */ 3 /* { dg-additional-sources "avx2-pr99517-2.c" } */ 4 /* { dg-options "-O2 -mavx2" } */ 5 6 #include "avx2-check.h" 7 8 typedef signed char v32qi __attribute__((vector_size(32))); 9 typedef int v4si __attribute__((vector_size(16))); 10 typedef long long int v4di __attribute__((vector_size(32))); 11 typedef double v4df __attribute__((vector_size(32))); 12 extern v32qi foo (v4si); 13 extern v32qi bar (v4si); 14 15 static void avx2_test(void)16avx2_test (void) 17 { 18 v4si a = { 1, -2, 3, -4 }; 19 __asm ("" : "+x" (a)); 20 v4di b = (v4di) bar (a); 21 v4df c = (v4df) foo (a); 22 if (b[0] != 1 || c[0] != 1.0 || b[1] != -2 || c[1] != -2.0 23 || b[2] != 3 || c[2] != 3.0 || b[3] != -4 || c[3] != -4.0) 24 __builtin_abort (); 25 } 26