blob: 42cbf741edb0b52844ec69b83a95931fe037a826 [file] [log] [blame]
/* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */
/* { dg-options "-O2 -m64 -fdump-tree-ivopts-details" } */
/* Make sure only one iv is selected after IVOPT. */
#include <x86intrin.h>
extern __m128i arr[], d[];
void test (void)
{
unsigned int b;
for (b = 0; b < 1000; b += 2) {
__m128i *p = (__m128i *)(&d[b]);
__m128i a = _mm_load_si128(&arr[4*b+3]);
__m128i v = _mm_loadu_si128(p);
v = _mm_xor_si128(v, a);
_mm_storeu_si128(p, v);
}
}
/* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
/* { dg-final { cleanup-tree-dump "ivopts" } } */