altivec.h (vec_absd): New macro for vector absolute difference unsigned.
[platform/upstream/gcc.git] / gcc / testsuite / gcc.target / powerpc / vadsdu-2.c
1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
3 /* { dg-require-effective-target p9vector_hw } */
4 /* { dg-options "-mcpu=power9" } */
5
6 /* This test should succeed on both 32- and 64-bit configurations.  */
7 #include <altivec.h>
8
9 __vector unsigned short
10 doAbsoluteDifferenceUnsignedShort (__vector unsigned short *p,
11                                    __vector unsigned short *q)
12 {
13   __vector unsigned short source_1, source_2;
14   __vector unsigned short result;
15
16   source_1 = *p;
17   source_2 = *q;
18
19   result = __builtin_vec_vadu (source_1, source_2);
20   return result;
21 }
22
23 /* { dg-final { scan-assembler "vabsduh" } } */