/* { dg-do compile } */ /* { dg-options "-finline-stringops -fno-lto" } */ void *zero (unsigned long long (*p)[32], int n) { return __builtin_memset (p, 0, n * sizeof (*p)); } void *ones (char (*p)[128], int n) { return __builtin_memset (p, -1, n * sizeof (*p)); } void *opt2 (int *p, int i) { return __builtin_memset (p, 0, (i ? 1024 : 2) * sizeof (*p)); } void *opt8 (int *p, int i) { return __builtin_memset (p, 0, (i ? 1024 : 8) * sizeof (*p)); } void *opt32 (int *p, int i) { return __builtin_memset (p, 0, (i ? 1024 : 32) * sizeof (*p)); } void *opt128 (int *p, int i) { return __builtin_memset (p, 0, (i ? 1024 : 128) * sizeof (*p)); } void *opt512 (int *p, int i) { return __builtin_memset (p, 0, (i ? 1024 : 512) * sizeof (*p)); } void *opt_primes (int *p, int i) { return __builtin_memset (p, 0, (i ? 509 : 7) * sizeof (*p)); } void *opt_primes_blk (int *p, int i) { return __builtin_memset (p, 0, (i ? 521 : 9) * sizeof (*p)); } void *huge (long (*p)[16384]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep1 (long (*p)[16384+1]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep4 (long (*p)[16384+4]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep16 (long (*p)[16384+16]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep64 (long (*p)[16384+64]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep256 (long (*p)[16384+256]) { return __builtin_memset (p, 0, sizeof (*p)); } void *hugep1024p256p64p16p4p1 (long (*p)[16384+1024+64+16+4+1]) { return __builtin_memset (p, 0, sizeof (*p)); } /* { dg-final { scan-assembler-not {\mmemset\M} } } */