blob: 837edecf7d07cbb3624a6c31397f98755dc0cb6c [file] [log] [blame]
/* { dg-options "-O3 -msve-vector-bits=256" } */
#include <stdint.h>
void
f1 (uint64_t *restrict ptr1, uint8_t *restrict ptr2, uint8_t start)
{
#pragma GCC unroll 0
for (int i = 0; i < 4; ++i)
{
ptr1[i] = 10;
ptr2[i] = start;
start += 1;
}
}
void
f2 (uint64_t *restrict ptr1, uint16_t *restrict ptr2, uint16_t start)
{
#pragma GCC unroll 0
for (int i = 0; i < 4; ++i)
{
ptr1[i] = 10;
ptr2[i] = start;
start += 2;
}
}
void
f3 (uint64_t *restrict ptr1, uint32_t *restrict ptr2, uint32_t start)
{
#pragma GCC unroll 0
for (int i = 0; i < 4; ++i)
{
ptr1[i] = 10;
ptr2[i] = start;
start += 4;
}
}
/* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */
/* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */
/* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #4\n} } } */
/* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */
/* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */
/* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #4\n} } } */