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