testsuite: Enable and adjust powerpc fold-vec-extract/insert testcases.

This patch enables a number of testcases on non-Linux targets, adjusts
the target requirements, and updates the expected results.

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/fold-vec-extract-char.p7.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-char.p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-char.p9.c: Remove target.
	Expect 3 addi for ilp32.
	* gcc.target/powerpc/fold-vec-extract-double.p7.c: Remove target.
	Add -mbig-endian for Linux.
	* gcc.target/powerpc/fold-vec-extract-double.p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-float.p7.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-float.p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-float.p9.c: Require lp64.
	* gcc.target/powerpc/fold-vec-extract-int.p7.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-int.p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-int.p9.c: Remove target.
	Expect 3 addi for ilp32.
	* gcc.target/powerpc/fold-vec-extract-longlong.p7.c: Remove target.
	Expect 4 addi for ilp32.
	* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: Remove target.
	Expect 4 addi for ilp32.
	* gcc.target/powerpc/fold-vec-extract-longlong.p9.c: Require lp64.
	* gcc.target/powerpc/fold-vec-extract-short.p7.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-short.p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-extract-short.p9.c: Require lp64.
	* gcc.target/powerpc/fold-vec-insert-char-p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-char-p9.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-double.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-float-p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-float-p9.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-int-p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-int-p9.c: Remove target.
	Require 8 addi for ilp32.
	* gcc.target/powerpc/fold-vec-insert-longlong.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-short-p8.c: Remove target.
	* gcc.target/powerpc/fold-vec-insert-short-p9.c: Remove target.
	* gcc.target/powerpc/fold-vec-select-double.c: Remove target.
	* gcc.target/powerpc/fold-vec-select-float.c: Remove target.
	* gcc.target/powerpc/fold-vec-splats-int.c: Require lp64.
	* gcc.target/powerpc/fold-vec-splats-longlong.c: Require lp64.
This commit is contained in:
David Edelsohn 2020-10-19 09:50:44 -04:00
parent b003c4b14b
commit badeac77f5
31 changed files with 39 additions and 37 deletions

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with char
inputs produce the right code with a power7 (BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with char
inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with char
inputs produce the right code with a P9 (LE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2 " } */
@ -12,7 +12,7 @@
/* { dg-final { scan-assembler-times "stxv" 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times "lbz" 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times "addi" 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times "addi" 3 { target ilp32 } } } */
#include <altivec.h>

View file

@ -1,9 +1,10 @@
/* Verify that overloaded built-ins for vec_extract() with
double inputs produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2 -mbig-endian" } */
/* { dg-options "-mdejagnu-cpu=power7 -O2" } */
/* { dg-additional-options "-mbig-endian" { target powerpc*-*-linux* } } */
// targeting P7 (BE), 2 tests.
// P7 constants: xxpermdi

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with
double inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with float
inputs produce the right code with a P7 (BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2 " } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with float
inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with float
inputs produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* && le } } } */
/* { dg-do compile { target lp64 } } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2 " } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with int
inputs produce the right code with a P7 (BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2 " } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with int
inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with int
inputs produce the right code with a P9 (LE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2 " } */
@ -18,7 +18,7 @@
/* { dg-final { scan-assembler-times {\madd\M} 3 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mstxv\M} 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mlwz\M} 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 3 { target ilp32 } } } */
#include <altivec.h>

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with long long
inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2" } */
@ -21,7 +21,8 @@
/* { dg-final { scan-assembler-times {\mli\M} 3 { target lp64 } } } */
/* -m32 target with constant test uses (+2)li where the -m64 has an ld */
/* { dg-final { scan-assembler-times {\mli\M} 5 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 6 } } */
/* { dg-final { scan-assembler-times {\maddi\M} 6 { target lp64 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 4 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstvx\M} 3 } } */
/* { dg-final { scan-assembler-times {\mrldic\M|\mrlwinm\M} 3 } } */
/* { dg-final { scan-assembler-times {\mldx\M} 3 { target lp64 } } } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with long long
inputs produce the right code with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */
@ -17,7 +17,7 @@
/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvw4x\M} 4 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\madd\M} 3 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mlwz\M} 11 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 6 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 4 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mmfvsrd\M} 6 { target lp64 } } } */
/* { dg-final { scan-assembler-times {\mmtvsrd\M} 3 { target lp64 } } } */
/* { dg-final { scan-assembler-times {\mxxpermdi\M} 3 { target le } } } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with long long
inputs produce the right code for a P9 (LE) target. */
/* { dg-do compile { target { powerpc*-*-linux* && le } } } */
/* { dg-do compile { target lp64 } } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with short
inputs produce the right code for a P7 (BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mdejagnu-cpu=power7 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with short
inputs produce the right results with a P8 (LE or BE) target. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_extract() with short
inputs produce the right code for a P9 (LE) target. */
/* { dg-do compile { target { powerpc*-*-linux* && le } } } */
/* { dg-do compile { target lp64 } } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert () with char
inputs produce the right codegen. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert () with char
inputs produce the right codegen. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power9" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert with
double inputs produce the right codegen. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mvsx -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert with float
inputs produce the right codegen. Power8 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert with float
inputs produce the right codegen. Power9 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power9" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert() with int
inputs produce the right codegen. Power8 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert() with int
inputs produce the right codegen. Power9 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power9" } */
@ -59,7 +59,7 @@ testui2_cst(unsigned int x, vector unsigned int v)
/* { dg-final { scan-assembler-times {\mxxinsertw\M} 4 { target lp64 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 12 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\maddi\M} 8 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mstw\M} 8 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mlxv\M} 8 { target ilp32 } } } */
/* { dg-final { scan-assembler-times {\mlvewx\M} 4 { target ilp32 } } } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert() with long long
inputs produce the right codegen. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert() with short
inputs produce the right codegen. Power8 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_insert() with short
inputs produce the right codegen. Power9 variant. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power9" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_sel with
double inputs for VSX produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_sel with float
inputs for VSX produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec -O2" } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_splat with int
inputs produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
/* { dg-do compile { target lp64 } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -O2 " } */

View file

@ -1,7 +1,7 @@
/* Verify that overloaded built-ins for vec_splat with long long
inputs produce the right code. */
/* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
/* { dg-do compile { target lp64 } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-mvsx -O2" } */