Commit b31b6053 by Will Schmidt Committed by Will Schmidt

altivec-7-be.c: Remove VSX content, allow 32-bit target.


[testsuite]

2018-03-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow
	32-bit target.
	* gcc.target/powerpc/altivec-7.h: Remove VSX content.
	* gcc.target/powerpc/vsx-7-be.c: New test (VSX content).
	* gcc.target/powerpc/vsx-7.h: New include (VSX content).
	* gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include.

From-SVN: r258137
parent 3458c61f
2018-03-02 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow
32-bit target.
* gcc.target/powerpc/altivec-7.h: Remove VSX content.
* gcc.target/powerpc/vsx-7-be.c: New test (VSX content).
* gcc.target/powerpc/vsx-7.h: New include (VSX content).
* gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include.
2018-03-02 Marek Polacek <polacek@redhat.com>
PR c++/84590
......
/* { dg-do compile { target powerpc64-*-* } } */
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Expected results for Big Endian:
vec_packpx vpkpx
vec_ld lxv2x
vec_ld lxvd2x
vec_lde lvewx
vec_ldl lxvl
vec_lvewx lvewx
......@@ -21,15 +21,10 @@
/* { dg-final { scan-assembler-times "vpkpx" 2 } } */
/* { dg-final { scan-assembler-times "vmulesb" 1 } } */
/* { dg-final { scan-assembler-times "vmulosb" 1 } } */
/* { dg-final { scan-assembler-times "lxvd2x" 6 } } */
/* { dg-final { scan-assembler-times "lvewx" 2 } } */
/* { dg-final { scan-assembler-times "lvxl" 1 } } */
/* { dg-final { scan-assembler-times "vupklsh" 1 } } */
/* { dg-final { scan-assembler-times "vupkhsh" 1 } } */
/* { dg-final { scan-assembler-times "xxlnor" 4 } } */
/* { dg-final { scan-assembler-times "xxland" 4 } } */
/* { dg-final { scan-assembler-times "xxlxor" 5 } } */
/* { dg-final { scan-assembler-times "vupkhpx" 1 } } */
/* Source code for the test in altivec-7.h */
#include "altivec-7.h"
......@@ -32,5 +32,6 @@
/* { dg-final { scan-assembler-times "xxlxor" 5 } } */
/* { dg-final { scan-assembler-times "vupkhpx" 1 } } */
/* Source code for the test in altivec-7.h */
/* Source code for the test in altivec-7.h and vsx-7.h. */
#include "altivec-7.h"
#include "vsx-7.h"
......@@ -17,7 +17,6 @@ vector unsigned char *vecuchar;
vector unsigned int *vecuint;
vector unsigned short *vecushort;
vector float *vecfloat;
vector double *vecdouble;
int main ()
{
......@@ -43,8 +42,6 @@ int main ()
*vecuint++ = vec_lvx(var_int[0], uintp[1]);
*vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
*vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
*vecdouble++ = vec_unpackl(vecfloat[0]);
*vecdouble++ = vec_unpackh(vecfloat[0]);
return 0;
}
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mvsx" } */
/* This is an extension of altivec-7-be.c, with vsx target features included. */
/* Expected results for Big Endian:
(from altivec-7.h)
vec_packpx vpkpx
vec_ld lxvd2x or lxv
vec_lde lvewx
vec_ldl lxvl
vec_lvewx lvewx
vec_andc xxnor
xxland
vec_vxor xxlxor
vec_vmsumubm vmsumubm
vec_vmulesb vmulesb
vec_vmulosb vmulosb
(from vsx-7.h)
vec_unpackl vupkhsh
vec_unpackh vupklsh
*/
/* { dg-final { scan-assembler-times "vpkpx" 2 } } */
/* { dg-final { scan-assembler-times "vmulesb" 1 } } */
/* { dg-final { scan-assembler-times "vmulosb" 1 } } */
// For LE platforms P9 and later, we generate the lxv insn instead of lxvd2x.
/* { dg-final { scan-assembler-times {\mlxvd2x\M} 0 { target { { powerpc64*le-*-* } && { p9vector_hw } } } } } */
/* { dg-final { scan-assembler-times {\mlxv\M} 36 { target { { powerpc64*le-*-* } && { p9vector_hw } } } } } */
// For LE platforms < P9.
/* { dg-final { scan-assembler-times {\mlxvd2x\M} 36 { target { { powerpc64*le-*-* } && { ! p9vector_hw } } } } } */
// For BE platforms we generate 6 lxvd2x insns.
/* { dg-final { scan-assembler-times {\mlxvd2x\M} 6 { target { { ! powerpc64*le-*-* } && { ! p9vector_hw } } } } } */
/* { dg-final { scan-assembler-times "lvewx" 2 } } */
/* { dg-final { scan-assembler-times "lvxl" 1 } } */
/* { dg-final { scan-assembler-times "vupklsh" 1 } } */
/* { dg-final { scan-assembler-times "vupkhsh" 1 } } */
/* { dg-final { scan-assembler-times "xxlnor" 4 } } */
/* { dg-final { scan-assembler-times "xxland" 4 } } */
/* { dg-final { scan-assembler-times "xxlxor" 5 } } */
/* { dg-final { scan-assembler-times "vupkhpx" 1 } } */
/* Source code for the 'altivec' test in altivec-7.h */
/* Source code for the 'vsx' required tests in vsx-7.h */
#include "altivec-7.h"
#include "vsx-7.h"
/* This test code is included into vsx-7-be.c.
* this is meant to supplement code in altivec-7.h. */
#include <altivec.h>
vector float *vecfloat;
vector double *vecdouble;
int main2 ()
{
*vecdouble++ = vec_unpackl(vecfloat[0]);
*vecdouble++ = vec_unpackh(vecfloat[0]);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment