aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/pr72863.c
blob: 76f1c12bb2ddc16d20dc07d18c23a6805baee396 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* { dg-do compile { target { powerpc64le-*-* } } } */
/* { dg-options "-mdejagnu-cpu=power8 -O3" } */
/* { dg-final { scan-assembler "lxvd2x" } } */
/* { dg-final { scan-assembler "stxvd2x" } } */
/* { dg-final { scan-assembler-not "xxpermdi" } } */

#include <altivec.h>

extern unsigned char *src, *dst;

void b(void)
{
  int i;

  unsigned char *s8 = src;
  unsigned char *d8 = dst;

  for (i = 0; i < 100; i++) {
    vector unsigned char vs = vec_vsx_ld(0, s8);
    vector unsigned char vd = vec_vsx_ld(0, d8);
    vector unsigned char vr = vec_xor(vs, vd);
    vec_vsx_st(vr, 0, d8);
    s8 += 16;
    d8 += 16;
  }
}