[testsuite]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / vsx-7-be.c
blob2df9fca11d4a125a6df3dab833732b9a7c4a07ab
1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-mvsx" } */
5 /* This is an extension of altivec-7-be.c, with vsx target features included. */
7 /* Expected results for Big Endian:
8 (from altivec-7.h)
9 vec_packpx vpkpx
10 vec_ld lxvd2x or lxv
11 vec_lde lvewx
12 vec_ldl lxvl
13 vec_lvewx lvewx
14 vec_andc xxnor
15 xxland
16 vec_vxor xxlxor
17 vec_vmsumubm vmsumubm
18 vec_vmulesb vmulesb
19 vec_vmulosb vmulosb
20 (from vsx-7.h)
21 vec_unpackl vupkhsh
22 vec_unpackh vupklsh
25 /* { dg-final { scan-assembler-times "vpkpx" 2 } } */
26 /* { dg-final { scan-assembler-times "vmulesb" 1 } } */
27 /* { dg-final { scan-assembler-times "vmulosb" 1 } } */
29 // For LE platforms P9 and later, we generate the lxv insn instead of lxvd2x.
30 /* { dg-final { scan-assembler-times {\mlxvd2x\M} 0 { target { { powerpc64*le-*-* } && { p9vector_hw } } } } } */
31 /* { dg-final { scan-assembler-times {\mlxv\M} 36 { target { { powerpc64*le-*-* } && { p9vector_hw } } } } } */
32 // For LE platforms < P9.
33 /* { dg-final { scan-assembler-times {\mlxvd2x\M} 36 { target { { powerpc64*le-*-* } && { ! p9vector_hw } } } } } */
34 // For BE platforms we generate 6 lxvd2x insns.
35 /* { dg-final { scan-assembler-times {\mlxvd2x\M} 6 { target { { ! powerpc64*le-*-* } && { ! p9vector_hw } } } } } */
37 /* { dg-final { scan-assembler-times "lvewx" 2 } } */
38 /* { dg-final { scan-assembler-times "lvxl" 1 } } */
39 /* { dg-final { scan-assembler-times "vupklsh" 1 } } */
40 /* { dg-final { scan-assembler-times "vupkhsh" 1 } } */
41 /* { dg-final { scan-assembler-times "xxlnor" 4 } } */
42 /* { dg-final { scan-assembler-times "xxland" 4 } } */
43 /* { dg-final { scan-assembler-times "xxlxor" 5 } } */
44 /* { dg-final { scan-assembler-times "vupkhpx" 1 } } */
46 /* Source code for the 'altivec' test in altivec-7.h */
47 /* Source code for the 'vsx' required tests in vsx-7.h */
49 #include "altivec-7.h"
50 #include "vsx-7.h"