| /* Limit this test to selected targets with IEEE double, 8-byte long long, |
| supported 4x int vectors, 4-byte int. */ |
| /* { dg-do compile { target { i?86-*-* x86_64-*-* powerpc*-*-* } } } */ |
| /* { dg-options "-O3 -fdump-tree-optimized" } */ |
| /* { dg-additional-options "-msse2" { target ia32 } } */ |
| /* { dg-additional-options "-mvsx -maltivec" { target powerpc*-*-* } } */ |
| |
| typedef int V __attribute__((__vector_size__ (16))); |
| #define N 1024 |
| double d[N]; |
| long long int l[N]; |
| _Bool b[N]; |
| _Complex double c[N]; |
| V v[N]; |
| |
| void |
| fd (void) |
| { |
| int i; |
| for (i = 0; i < N; i++) |
| d[i] = 747708026454360457216.0; |
| } |
| |
| void |
| fl (void) |
| { |
| int i; |
| for (i = 0; i < N; i++) |
| l[i] = 0x7c7c7c7c7c7c7c7cULL; |
| } |
| |
| void |
| fb (void) |
| { |
| int i; |
| for (i = 0; i < N; i++) |
| b[i] = 1; |
| } |
| |
| void |
| fc (void) |
| { |
| int i; |
| for (i = 0; i < N; i++) |
| c[i] = 747708026454360457216.0 + 747708026454360457216.0i; |
| } |
| |
| void |
| fv (void) |
| { |
| int i; |
| for (i = 0; i < N; i++) |
| v[i] = (V) { 0x12121212, 0x12121212, 0x12121212, 0x12121212 }; |
| } |
| |
| /* Look for |
| __builtin_memset (&d, 68, 8192); |
| __builtin_memset (&l, 124, 8192); |
| __builtin_memset (&b, 1, 1024); |
| __builtin_memset (&c, 68, 16384); |
| __builtin_memset (&v, 18, 16384); */ |
| /* { dg-final { scan-tree-dump-times "memset ..d, 68, 8192.;" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "memset ..l, 124, 8192.;" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "memset ..b, 1, 1024.;" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "memset ..c, 68, 16384.;" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "memset ..v, 18, 16384.;" 1 "optimized" } } */ |