Commit 5fdba872 by Uros Bizjak Committed by Uros Bizjak

*.c: Do not require sse{,2,3,4} effective target for compile-time only tests.

	* gcc.target/i386/*.c: Do not require sse{,2,3,4} effective target
	for compile-time only tests.
	* gcc.target/i386/pr39315-2.c: Remove redundant sse2 effective
	target check.
	* gcc.target/i386/pr39315-4.c: Ditto.
	* gcc.target/i386/vperm-v4si-1.c: Remove sse_runtime effective
	target check.  Include sse-os-support.h.
	(main): Call check_isa and sse_os_support.
	* gcc.target/i386/vperm-v4sf-1.c: Ditto.
	* gcc.target/i386/vperm-v4si-2.c (main): Call check_isa.
	* gcc.target/i386/vperm-v4sf-2.c: Ditto.
	* gcc.target/i386/vperm-v2di.c: Remove sse2_runtime effective
	target check.  Include sse-os-support.h.
	(main): Call check_isa and sse_os_support.
	* gcc.target/i386/vperm-v2df.c: Ditto.

From-SVN: r162457
parent 1d8ec041
2010-06-23 Uros Bizjak <ubizjak@gmail.com> 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/*.c: Do not require sse{,2,3,4} effective target
for compile-time only tests.
* gcc.target/i386/pr39315-2.c: Remove redundant sse2 effective
target check.
* gcc.target/i386/pr39315-4.c: Ditto.
* gcc.target/i386/vperm-v4si-1.c: Remove sse_runtime effective
target check. Include sse-os-support.h.
(main): Call check_isa and sse_os_support.
* gcc.target/i386/vperm-v4sf-1.c: Ditto.
* gcc.target/i386/vperm-v4si-2.c (main): Call check_isa.
* gcc.target/i386/vperm-v4sf-2.c: Ditto.
* gcc.target/i386/vperm-v2di.c: Remove sse2_runtime effective
target check. Include sse-os-support.h.
(main): Call check_isa and sse_os_support.
* gcc.target/i386/vperm-v2df.c: Ditto.
2010-06-23 Uros Bizjak <ubizjak@gmail.com>
* lib/target-supports.exp (check_avx_hw_available): New procedure. * lib/target-supports.exp (check_avx_hw_available): New procedure.
(check_effective_target_avx_runtime): New procedure. (check_effective_target_avx_runtime): New procedure.
(check_effective_target_sse2_runtime): Add check_effective_target_sse2. (check_effective_target_sse2_runtime): Add check_effective_target_sse2.
...@@ -12,7 +30,7 @@ ...@@ -12,7 +30,7 @@
* gcc.target/i386/avx-check.h (main): Also check bit_OSXSAVE. * gcc.target/i386/avx-check.h (main): Also check bit_OSXSAVE.
* gcc.dg/20020418-1.c: Do not require sse2 effective target * gcc.dg/20020418-1.c: Do not require sse{,2} effective target
for compile-time only test. for compile-time only test.
* gcc.dg/pr32716.c: Ditto. * gcc.dg/pr32716.c: Ditto.
* gcc.dg/pr34856.c: Ditto. * gcc.dg/pr34856.c: Ditto.
...@@ -27,7 +45,7 @@ ...@@ -27,7 +45,7 @@
* g++.dg/vect/vect.exp: Ditto. * g++.dg/vect/vect.exp: Ditto.
* gfortran.dg/vect/vect.exp: Ditto. * gfortran.dg/vect/vect.exp: Ditto.
* gcc.dg/pr36584.c: Remove now redundant sse2 effective target check. * gcc.dg/pr36584.c: Remove redundant sse{,2} effective target check.
* gcc.dg/pr37544.c: Ditto. * gcc.dg/pr37544.c: Ditto.
* gcc.dg/pr40550.c: Ditto. * gcc.dg/pr40550.c: Ditto.
* gcc.dg/compat/union-m128-1_main.c: Ditto. * gcc.dg/compat/union-m128-1_main.c: Ditto.
......
/* Verify that X86-64 only SSE registers aren't restored on IA-32. */ /* Verify that X86-64 only SSE registers aren't restored on IA-32. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse } */
/* { dg-options "-O2 -msse" } */ /* { dg-options "-O2 -msse" } */
/* { dg-final { scan-assembler-not "xmm8" } } */ /* { dg-final { scan-assembler-not "xmm8" } } */
......
/* Make certain that we pass V2DF in the correct register for SSE1. */ /* Make certain that we pass V2DF in the correct register for SSE1. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -msse -mno-sse2" } */ /* { dg-options "-O1 -msse -mno-sse2" } */
/* { dg-require-effective-target sse } */
typedef double v2df __attribute__((vector_size (16))); typedef double v2df __attribute__((vector_size (16)));
v2df foo (void) { return (v2df){ 1.0, 2.0 }; } v2df foo (void) { return (v2df){ 1.0, 2.0 }; }
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
typedef int __v4si __attribute__ ((__vector_size__ (16))); typedef int __v4si __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "cvtss2sd" } } */ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
float a,b; float a,b;
main() main()
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "cvtss2sd" } } */ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
float a,b; float a,b;
main() main()
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "cvtss2sd" } } */ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
extern double fabs (double); extern double fabs (double);
float a,b; float a,b;
......
/* Test whether using target specific options, we can generate FMA4 code. */ /* Test whether using target specific options, we can generate FMA4 code. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -march=k8 -mfpmath=sse -msse2" } */ /* { dg-options "-O2 -march=k8 -mfpmath=sse -msse2" } */
/* { dg-require-effective-target sse2 } */
extern void exit (int); extern void exit (int);
......
/* PR middle-end/37009 */ /* PR middle-end/37009 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* PR target/40838 */ /* PR target/40838 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
/* { dg-require-effective-target sse2 } */
typedef int v4si __attribute__ ((vector_size (16))); typedef int v4si __attribute__ ((vector_size (16)));
......
/* PR middle-end/37009 */ /* PR middle-end/37009 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* PR middle-end/37009 */ /* PR middle-end/37009 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* PR middle-end/37009 */ /* PR middle-end/37009 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
/* { dg-require-effective-target sse2 } */
#include <stdarg.h> #include <stdarg.h>
#include <emmintrin.h> #include <emmintrin.h>
......
/* PR target/40838 */ /* PR target/40838 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
/* { dg-require-effective-target sse2 } */
typedef int v4si __attribute__ ((vector_size (16))); typedef int v4si __attribute__ ((vector_size (16)));
......
/* PR target/40838 */ /* PR target/40838 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
/* { dg-require-effective-target sse2 } */
typedef int v4si __attribute__ ((vector_size (16))); typedef int v4si __attribute__ ((vector_size (16)));
......
/* PR target/40838 */ /* PR target/40838 */
/* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
/* { dg-options "-w -mstackrealign -O3 -msse2 -mpreferred-stack-boundary=4" } */ /* { dg-options "-w -mstackrealign -O3 -msse2 -mpreferred-stack-boundary=4" } */
/* { dg-require-effective-target sse2 } */
float float
foo (float f) foo (float f)
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
whether we vectorize a simple loop. */ whether we vectorize a simple loop. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "prefetcht0" } } */ /* { dg-final { scan-assembler "prefetcht0" } } */
/* { dg-final { scan-assembler "addps" } } */ /* { dg-final { scan-assembler "addps" } } */
/* { dg-final { scan-assembler "subss" } } */ /* { dg-final { scan-assembler "subss" } } */
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
whether we vectorize a simple loop. */ whether we vectorize a simple loop. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "prefetcht0" } } */ /* { dg-final { scan-assembler "prefetcht0" } } */
/* { dg-final { scan-assembler "addps" } } */ /* { dg-final { scan-assembler "addps" } } */
/* { dg-final { scan-assembler "subss" } } */ /* { dg-final { scan-assembler "subss" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "cmpordss" } } */ /* { dg-final { scan-assembler "cmpordss" } } */
/* { dg-final { scan-assembler "cmpordps" } } */ /* { dg-final { scan-assembler "cmpordps" } } */
/* { dg-final { scan-assembler "cmpordsd" } } */ /* { dg-final { scan-assembler "cmpordsd" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -msse" } */ /* { dg-options "-O -msse" } */
/* { dg-require-effective-target sse } */
#include <xmmintrin.h> #include <xmmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -mfpmath=sse -msse2" } */ /* { dg-options "-O -mfpmath=sse -msse2" } */
/* { dg-require-effective-target sse2 } */
/* The fact that t1 and t2 are uninitialized is critical. With them /* The fact that t1 and t2 are uninitialized is critical. With them
uninitialized, the register allocator is free to put them in the same uninitialized, the register allocator is free to put them in the same
hard register, which results in hard register, which results in
......
/* PR rtl-optimization/18614 */ /* PR rtl-optimization/18614 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef double v2df __attribute__ ((vector_size (16))); typedef double v2df __attribute__ ((vector_size (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <mmintrin.h> #include <mmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef float __v4sf __attribute__ ((__vector_size__ (16))); typedef float __v4sf __attribute__ ((__vector_size__ (16)));
typedef float __m128 __attribute__ ((__vector_size__ (16))); typedef float __m128 __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target sse2 } */
/* We used to ICE because of a bogous pattern. */ /* We used to ICE because of a bogous pattern. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -mtune=k8" } */ /* { dg-options "-O2 -msse2 -mtune=k8" } */
/* { dg-require-effective-target sse2 } */
typedef short __v8hi __attribute__ ((__vector_size__ (16))); typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -ftree-vectorize -msse2" } */ /* { dg-options "-O -ftree-vectorize -msse2" } */
/* { dg-require-effective-target sse2 } */
void foo(int *p, int N) void foo(int *p, int N)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -ftree-vectorize -msse2" } */ /* { dg-options "-O -ftree-vectorize -msse2" } */
/* { dg-require-effective-target sse2 } */
void binarize (int npixels, unsigned char *b) void binarize (int npixels, unsigned char *b)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -ftree-vectorize -funswitch-loops" } */ /* { dg-options "-O2 -msse2 -ftree-vectorize -funswitch-loops" } */
/* { dg-require-effective-target sse2 } */
static int ready[10]; static int ready[10];
void abort (void); void abort (void);
......
/* { dg-do compile } /* { dg-do compile }
/* { dg-options "-msse2 -O2 -ftree-vectorize" } */ /* { dg-options "-msse2 -O2 -ftree-vectorize" } */
/* { dg-require-effective-target sse2 } */
#define N 256 #define N 256
int b[N]; int b[N];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse -mno-sse2" } */ /* { dg-options "-msse -mno-sse2" } */
/* { dg-require-effective-target sse } */
typedef double __v2df __attribute__ ((vector_size (16))); typedef double __v2df __attribute__ ((vector_size (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target dfp } */ /* { dg-require-effective-target dfp } */
/* { dg-require-effective-target sse } */
/* { dg-options "-msse -std=gnu99" } */ /* { dg-options "-msse -std=gnu99" } */
_Decimal128 test (void) _Decimal128 test (void)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse } */
/* { dg-options "-msse" } */ /* { dg-options "-msse" } */
double f1(); double f1();
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef int __v4si __attribute__ ((__vector_size__ (16))); typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef float __v4sf __attribute__ ((__vector_size__ (16))); typedef float __v4sf __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef long long __v2di __attribute__ ((__vector_size__ (16))); typedef long long __v2di __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O0 -msse2" } */ /* { dg-options "-O0 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <xmmintrin.h> #include <xmmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ftree-vectorize -msse2" } */ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
/* { dg-require-effective-target sse2 } */
extern void g (int *); extern void g (int *);
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* Test that we generate aligned load when memory is aligned. */ /* Test that we generate aligned load when memory is aligned. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -msse2 -mtune=generic" } */ /* { dg-options "-O -msse2 -mtune=generic" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "movups" } } */ /* { dg-final { scan-assembler-not "movups" } } */
/* { dg-final { scan-assembler "movaps" } } */ /* { dg-final { scan-assembler "movaps" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
typedef int __v4si __attribute__ ((__vector_size__ (16))); typedef int __v4si __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } /* { dg-do compile }
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */ /* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */
/* { dg-require-effective-target sse2 } */
typedef __SIZE_TYPE__ size_t; typedef __SIZE_TYPE__ size_t;
extern void *malloc (size_t); extern void *malloc (size_t);
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef short __v8hi __attribute__ ((__vector_size__ (16))); typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -mtune=core2 -msse2" } */ /* { dg-options "-O2 -mtune=core2 -msse2" } */
/* { dg-require-effective-target sse2 } */
typedef short __v8hi __attribute__ ((__vector_size__ (16))); typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16))); typedef long long __m128i __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target sse4 } */
/* { dg-options "-O2 -msse4.1" } */ /* { dg-options "-O2 -msse4.1" } */
typedef char __v16qi __attribute__ ((__vector_size__ (16))); typedef char __v16qi __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target sse4 } */
/* { dg-options "-O2 -mtune=core2 -msse4.1" } */ /* { dg-options "-O2 -mtune=core2 -msse4.1" } */
typedef char __v16qi __attribute__ ((__vector_size__ (16))); typedef char __v16qi __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse" } */ /* { dg-options "-O2 -msse" } */
/* { dg-require-effective-target sse } */
typedef float v4sf __attribute__ ((__vector_size__ (16))); typedef float v4sf __attribute__ ((__vector_size__ (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse" } */ /* { dg-options "-O2 -msse" } */
/* { dg-require-effective-target sse } */
typedef int __m64 __attribute__ ((__vector_size__ (8))); typedef int __m64 __attribute__ ((__vector_size__ (8)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -mno-avx" } */ /* { dg-options "-O2 -msse2 -mno-avx" } */
/* { dg-require-effective-target sse2 } */
typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__)); typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));
......
/* PR middle-end/39315 */ /* PR middle-end/39315 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -msse2 -mtune=generic" } */ /* { dg-options "-O -msse2 -mtune=generic" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "movups" } } */ /* { dg-final { scan-assembler-not "movups" } } */
/* { dg-final { scan-assembler-not "movlps" } } */ /* { dg-final { scan-assembler-not "movlps" } } */
/* { dg-final { scan-assembler-not "movhps" } } */ /* { dg-final { scan-assembler-not "movhps" } } */
......
/* PR middle-end/39315 */ /* PR middle-end/39315 */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O -msse2 -mtune=generic" } */ /* { dg-options "-O -msse2 -mtune=generic" } */
/* { dg-require-effective-target sse2 } */
/* { dg-require-effective-target sse2_runtime } */ /* { dg-require-effective-target sse2_runtime } */
/* { dg-additional-sources pr39315-check.c } */ /* { dg-additional-sources pr39315-check.c } */
......
/* PR middle-end/39315 */ /* PR middle-end/39315 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -msse2 -mtune=generic" } */ /* { dg-options "-O -msse2 -mtune=generic" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler-not "movups" } } */ /* { dg-final { scan-assembler-not "movups" } } */
/* { dg-final { scan-assembler-not "movlps" } } */ /* { dg-final { scan-assembler-not "movlps" } } */
/* { dg-final { scan-assembler-not "movhps" } } */ /* { dg-final { scan-assembler-not "movhps" } } */
......
/* PR middle-end/39315 */ /* PR middle-end/39315 */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O -msse2 -mtune=generic" } */ /* { dg-options "-O -msse2 -mtune=generic" } */
/* { dg-require-effective-target sse2 } */
/* { dg-require-effective-target sse2_runtime } */ /* { dg-require-effective-target sse2_runtime } */
/* { dg-additional-sources pr39315-check.c } */ /* { dg-additional-sources pr39315-check.c } */
......
/* PR target/39496 */ /* PR target/39496 */
/* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */ /* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
/* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */ /* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */
/* { dg-require-effective-target sse2 } */
/* Verify that {foo,bar}{,2}param are all passed on the stack, using /* Verify that {foo,bar}{,2}param are all passed on the stack, using
normal calling conventions, when not optimizing. */ normal calling conventions, when not optimizing. */
/* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */ /* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
39592. */ 39592. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-ansi -msse" } */ /* { dg-options "-ansi -msse" } */
/* { dg-require-effective-target sse } */
double double
foo (unsigned long var) foo (unsigned long var)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target avx } */
/* { dg-options "-O2 -mavx" } */ /* { dg-options "-O2 -mavx" } */
typedef int __v8si __attribute__((__vector_size__(32))); typedef int __v8si __attribute__((__vector_size__(32)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -msse2 -ftree-vectorize" } */ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
/* { dg-require-effective-target sse2 } */
#include "pr42542-3.c" #include "pr42542-3.c"
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-options "-O2 -msse -mregparm=3" { target ilp32 } } */ /* { dg-options "-O2 -msse -mregparm=3" { target ilp32 } } */
/* { dg-require-effective-target sse } */
void p (int *a, int i) void p (int *a, int i)
{ {
......
/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
/* { dg-options "-w -msse2 -Os" } */ /* { dg-options "-w -msse2 -Os" } */
/* { dg-require-effective-target sse2 } */
typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
__float128 x, y; __float128 x, y;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -msse -mfpmath=sse -mrecip" } */ /* { dg-options "-O2 -ffast-math -msse -mfpmath=sse -mrecip" } */
/* { dg-require-effective-target sse } */
float t1(float a, float b) float t1(float a, float b)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -msse -mfpmath=sse -mrecip" } */ /* { dg-options "-O2 -ffast-math -msse -mfpmath=sse -mrecip" } */
/* { dg-require-effective-target sse } */
extern float sqrtf (float); extern float sqrtf (float);
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */
/* { dg-require-effective-target sse } */
float a[16]; float a[16];
float b[16]; float b[16];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */
/* { dg-require-effective-target sse } */
float a[16]; float a[16];
float b[16]; float b[16];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O3 -msse2 -fdump-rtl-csa" } */ /* { dg-options "-O3 -msse2 -fdump-rtl-csa" } */
/* { dg-skip-if "no stdint" { vxworks_kernel } } */ /* { dg-skip-if "no stdint" { vxworks_kernel } } */
......
/* PR 12902 */ /* PR 12902 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -msse" } */ /* { dg-options "-O1 -msse" } */
/* { dg-require-effective-target sse } */
#include <xmmintrin.h> #include <xmmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse -msse2" } */ /* { dg-options "-O2 -msse -msse2" } */
/* { dg-require-effective-target sse2 } */
/* Test that the intrinsics compile with optimization. These were not /* Test that the intrinsics compile with optimization. These were not
tested in i386-sse-[12].c because these builtins require immediate tested in i386-sse-[12].c because these builtins require immediate
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O0 -msse" } */ /* { dg-options "-O0 -msse" } */
/* { dg-require-effective-target sse } */
typedef float __vr __attribute__ ((vector_size (16))); typedef float __vr __attribute__ ((vector_size (16)));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O3 -msse2" } */ /* { dg-options "-O3 -msse2" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "punpcklbw" } } */ /* { dg-final { scan-assembler "punpcklbw" } } */
extern void abort(); extern void abort();
#include <emmintrin.h> #include <emmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O3 -msse" } */ /* { dg-options "-O3 -msse" } */
/* { dg-require-effective-target sse } */
#include <xmmintrin.h> #include <xmmintrin.h>
static const __m128 v_sign = {-.0f, -.0f, -.0f, -.0f}; static const __m128 v_sign = {-.0f, -.0f, -.0f, -.0f};
static const __m128 v_half = {0.5f, 0.5f, 0.5f, 0.5f}; static const __m128 v_half = {0.5f, 0.5f, 0.5f, 0.5f};
......
/* This testcase caused a buffer overflow in simplify_immed_subreg. */ /* This testcase caused a buffer overflow in simplify_immed_subreg. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O0 -msse2" } */ /* { dg-options "-O0 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <xmmintrin.h> #include <xmmintrin.h>
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#include <emmintrin.h> #include <emmintrin.h>
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse } */
/* { dg-final { scan-assembler "movss" } } */ /* { dg-final { scan-assembler "movss" } } */
/* { dg-final { scan-assembler "mulss" } } */ /* { dg-final { scan-assembler "mulss" } } */
/* { dg-final { scan-assembler-not "movsd" } } */ /* { dg-final { scan-assembler-not "movsd" } } */
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "movss" } } */ /* { dg-final { scan-assembler "movss" } } */
/* { dg-final { scan-assembler "mulss" } } */ /* { dg-final { scan-assembler "mulss" } } */
/* { dg-final { scan-assembler "movsd" } } */ /* { dg-final { scan-assembler "movsd" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "maxsd" } } */ /* { dg-final { scan-assembler "maxsd" } } */
/* { dg-final { scan-assembler "minsd" } } */ /* { dg-final { scan-assembler "minsd" } } */
double x; double x;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "maxsd" } } */ /* { dg-final { scan-assembler "maxsd" } } */
/* { dg-final { scan-assembler "minsd" } } */ /* { dg-final { scan-assembler "minsd" } } */
double x; double x;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse" } */ /* { dg-options "-O2 -msse" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse } */
float essef(float) __attribute__((sseregparm)); float essef(float) __attribute__((sseregparm));
double essed(double) __attribute__((sseregparm)); double essed(double) __attribute__((sseregparm));
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* Make sure we know that mysinfp returns in %xmm0. */ /* Make sure we know that mysinfp returns in %xmm0. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* Make sure we know that mysinfp returns in %xmm0. */ /* Make sure we know that mysinfp returns in %xmm0. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* Make sure we know that mysinfp returns in %xmm0. */ /* Make sure we know that mysinfp returns in %xmm0. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* Make sure we know that mysinfp returns in %xmm0. */ /* Make sure we know that mysinfp returns in %xmm0. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-msse2 -O2" } */ /* { dg-options "-msse2 -O2" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* Make sure we know that mysinfp returns in %xmm0. */ /* Make sure we know that mysinfp returns in %xmm0. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* This test checks for absolute memory operands. */ /* This test checks for absolute memory operands. */
/* { dg-require-effective-target nonpic } */ /* { dg-require-effective-target nonpic } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
/* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "andpd" } } */ /* { dg-final { scan-assembler "andpd" } } */
/* { dg-final { scan-assembler "andnpd" } } */ /* { dg-final { scan-assembler "andnpd" } } */
/* { dg-final { scan-assembler "xorpd" } } */ /* { dg-final { scan-assembler "xorpd" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* This test checks for absolute memory operands. */ /* This test checks for absolute memory operands. */
/* { dg-require-effective-target nonpic } */ /* { dg-require-effective-target nonpic } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
/* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "andps" } } */ /* { dg-final { scan-assembler "andps" } } */
/* { dg-final { scan-assembler "andnps" } } */ /* { dg-final { scan-assembler "andnps" } } */
/* { dg-final { scan-assembler "xorps" } } */ /* { dg-final { scan-assembler "xorps" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* This test checks for absolute memory operands. */ /* This test checks for absolute memory operands. */
/* { dg-require-effective-target nonpic } */ /* { dg-require-effective-target nonpic } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
/* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "cmpunordss" } } */ /* { dg-final { scan-assembler "cmpunordss" } } */
/* { dg-final { scan-assembler "cmpunordps" } } */ /* { dg-final { scan-assembler "cmpunordps" } } */
/* { dg-final { scan-assembler "cmpunordsd" } } */ /* { dg-final { scan-assembler "cmpunordsd" } } */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
float a; float a;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
int a; int a;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
char a; char a;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
short a; short a;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
float a, b; float a, b;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */ /* { dg-options "-O2 -msse2" } */
/* { dg-require-effective-target sse2 } */
#define vector __attribute__((vector_size(16))) #define vector __attribute__((vector_size(16)))
int a, b; int a, b;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
double a[256]; double a[256];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
float a[256]; float a[256];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target sse2 } */
/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
/* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue. */ /* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -msse2 -ftree-vectorize -mveclibabi=svml -ffast-math" } */ /* { dg-options "-O2 -msse2 -ftree-vectorize -mveclibabi=svml -ffast-math" } */
/* { dg-require-effective-target sse2 } */
double x[256]; double x[256];
......
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