1 /* { dg-require-effective-target vect_int } */ 2 3 #include <stdarg.h> 4 #include "tree-vect.h" 5 6 #define N 256 7 8 __attribute__ ((noinline)) void foo(long long * arr)9foo (long long *arr) 10 { 11 for (int i = 0; i < N; i++) 12 arr[i] *= -19594LL; 13 } 14 15 int main(void)16main (void) 17 { 18 check_vect (); 19 long long data[N]; 20 int i; 21 22 for (i = 0; i < N; i++) 23 { 24 data[i] = i; 25 __asm__ volatile (""); 26 } 27 28 foo (data); 29 for (i = 0; i < N; i++) 30 { 31 if (data[i] / -19594LL != i) 32 __builtin_abort (); 33 __asm__ volatile (""); 34 } 35 36 return 0; 37 } 38 39 /* { dg-final { scan-tree-dump-times "vect_recog_mult_pattern: detected" 2 "vect" { target aarch64*-*-* xfail aarch64_sve } } } */ 40 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target aarch64*-*-* } } } */ 41