1 /* { dg-do compile { target { powerpc64le-*-* } } } */
2 /* { dg-options "-mdejagnu-cpu=power8 -O3" } */
3 /* { dg-final { scan-assembler "lxvd2x" } } */
4 /* { dg-final { scan-assembler "stxvd2x" } } */
5 /* { dg-final { scan-assembler-not "xxpermdi" } } */
6 
7 #include <altivec.h>
8 
9 extern unsigned char *src, *dst;
10 
b(void)11 void b(void)
12 {
13   int i;
14 
15   unsigned char *s8 = src;
16   unsigned char *d8 = dst;
17 
18   for (i = 0; i < 100; i++) {
19     vector unsigned char vs = vec_vsx_ld(0, s8);
20     vector unsigned char vd = vec_vsx_ld(0, d8);
21     vector unsigned char vr = vec_xor(vs, vd);
22     vec_vsx_st(vr, 0, d8);
23     s8 += 16;
24     d8 += 16;
25   }
26 }
27