aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c254
1 files changed, 0 insertions, 254 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c b/gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c
deleted file mode 100644
index 1d4817f0a..000000000
--- a/gcc-4.9/gcc/testsuite/gcc.target/mips/msa-type.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Test MIPS MSA ASE instructions */
-/* { dg-do compile } */
-/* { dg-options "-mfp64 -mhard-float -mmsa" } */
-/* { dg-skip-if "madd and msub need combine" { *-*-* } { "-O0" } { "" } } */
-/* { dg-final { scan-assembler-times "\taddv.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\taddv.h\t" 2 } } */
-/* { dg-final { scan-assembler-times "\taddv.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\taddv.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tfadd.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfadd.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsubv.b\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tsubv.h\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tsubv.w\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tsubv.d\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tfsub.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tfsub.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmulv.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmulv.h\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmulv.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmulv.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tfmul.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfmul.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_s.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_s.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_s.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_s.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfdiv.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfdiv.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_u.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_u.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_u.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tdiv_u.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_s.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_s.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_s.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_s.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_u.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_u.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_u.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmod_u.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\txor.v\t" 8 } } */
-/* { dg-final { scan-assembler-times "\tor.v\t" 8 } } */
-/* { dg-final { scan-assembler-times "\tand.v\t" 8 } } */
-/* { dg-final { scan-assembler-times "\tsra.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsra.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsra.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsra.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsrl.b\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsrl.h\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsrl.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsrl.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tsll.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tsll.h\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tsll.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tsll.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tldi.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tldi.h\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tldi.w\t" 5 } } */
-/* { dg-final { scan-assembler-times "\tldi.d\t" 5 } } */
-/* { dg-final { scan-assembler-times "\tnor.v\t" 6 } } */
-/* { dg-final { scan-assembler-times "\tnori.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmaddv.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmaddv.h\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmaddv.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmaddv.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmove.v\t" 40 } } */
-/* { dg-final { scan-assembler-times "\tfmadd.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfmadd.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tmsubv.b\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmsubv.h\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmsubv.w\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tmsubv.d\t" 2 } } */
-/* { dg-final { scan-assembler-times "\tfmsub.w\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tfmsub.d\t" 1 } } */
-/* { dg-final { scan-assembler-times "\tvshf.b\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tvshf.h\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tvshf.w\t" 6 } } */
-/* { dg-final { scan-assembler-times "\tvshf.d\t" 6 } } */
-
-typedef signed char v16i8 __attribute__ ((vector_size(16)));
-typedef short v8i16 __attribute__ ((vector_size(16)));
-typedef int v4i32 __attribute__ ((vector_size(16)));
-typedef long long v2i64 __attribute__ ((vector_size(16)));
-typedef unsigned char v16u8 __attribute__ ((vector_size(16)));
-typedef unsigned short v8u16 __attribute__ ((vector_size(16)));
-typedef unsigned int v4u32 __attribute__ ((vector_size(16)));
-typedef unsigned long long v2u64 __attribute__ ((vector_size(16)));
-typedef float v4f32 __attribute__ ((vector_size(16)));
-typedef double v2f64 __attribute__ ((vector_size(16)));
-
-/*
-typedef signed char v8i8 __attribute__ ((vector_size(8)));
-typedef short v4i16 __attribute__ ((vector_size(8)));
-typedef int v2i32 __attribute__ ((vector_size(8)));
-typedef float v2f32 __attribute__ ((vector_size(8)));
-
-typedef signed char v4i8 __attribute__ ((vector_size(4)));
-typedef short v2i16 __attribute__ ((vector_size(4)));
-*/
-
-typedef long long i64;
-typedef int i32;
-typedef short i16;
-typedef signed char i8;
-typedef double f64;
-typedef float f32;
-
-#define DECLARE(TYPE) TYPE TYPE ## _0, TYPE ## _1, TYPE ## _2;
-#define RETURN(TYPE) NOMIPS16 TYPE test0_ ## TYPE () { return TYPE ## _0; }
-#define ASSIGN(TYPE) NOMIPS16 void test1_ ## TYPE (TYPE i) { TYPE ## _1 = i; }
-#define ADD(TYPE) NOMIPS16 TYPE test2_ ## TYPE (TYPE i, TYPE j) { return i + j; }
-#define SUB(TYPE) NOMIPS16 TYPE test3_ ## TYPE (TYPE i, TYPE j) { return i - j; }
-#define MUL(TYPE) NOMIPS16 TYPE test4_ ## TYPE (TYPE i, TYPE j) { return i * j; }
-#define DIV(TYPE) TYPE test5_ ## TYPE (TYPE i, TYPE j) { return i / j; }
-#define MOD(TYPE) TYPE test6_ ## TYPE (TYPE i, TYPE j) { return i % j; }
-#define MINUS(TYPE) TYPE test7_ ## TYPE (TYPE i) { return -i; }
-#define XOR(TYPE) TYPE test8_ ## TYPE (TYPE i, TYPE j) { return i ^ j; }
-#define OR(TYPE) TYPE test9_ ## TYPE (TYPE i, TYPE j) { return i | j; }
-#define AND(TYPE) TYPE test10_ ## TYPE (TYPE i, TYPE j) { return i & j; }
-#define BIT_COMPLEMENT(TYPE) TYPE test11_ ## TYPE (TYPE i) { return ~i; }
-#define SHIFT_RIGHT(TYPE) TYPE test12_ ## TYPE (TYPE i, TYPE j) { return i >> j; }
-#define SHIFT_LEFT(TYPE) TYPE test13_ ## TYPE (TYPE i, TYPE j) { return i << j; }
-#define EQ(TYPE) TYPE test14_ ## TYPE (TYPE i, TYPE j) { return i == j; }
-#define NEQ(TYPE) TYPE test15_ ## TYPE (TYPE i, TYPE j) { return i != j; }
-#define LT(TYPE) TYPE test16_ ## TYPE (TYPE i, TYPE j) { return i < j; }
-#define LEQ(TYPE) TYPE test17_ ## TYPE (TYPE i, TYPE j) { return i <= j; }
-#define GT(TYPE) TYPE test18_ ## TYPE (TYPE i, TYPE j) { return i > j; }
-#define GEQ(TYPE) TYPE test19_ ## TYPE (TYPE i, TYPE j) { return i >= j; }
-
-#define ADD_I(TYPE) TYPE test20_ ## TYPE (TYPE i) { return i + 37; }
-#define SUB_I(TYPE) TYPE test21_ ## TYPE (TYPE i) { return i - 37; }
-#define MUL_I(TYPE) TYPE test22_ ## TYPE (TYPE i) { return i * 37; }
-#define DIV_I(TYPE) TYPE test23_ ## TYPE (TYPE i) { return i / 37; }
-#define MOD_I(TYPE) TYPE test24_ ## TYPE (TYPE i) { return i % 37; }
-#define XOR_I(TYPE) TYPE test25_ ## TYPE (TYPE i) { return i ^ 37; }
-#define OR_I(TYPE) TYPE test26_ ## TYPE (TYPE i) { return i | 37; }
-#define AND_I(TYPE) TYPE test27_ ## TYPE (TYPE i) { return i & 37; }
-#define SHIFT_RIGHT_I(TYPE) TYPE test28_ ## TYPE (TYPE i) { return i >> 3; }
-#define SHIFT_LEFT_I(TYPE) TYPE test29_ ## TYPE (TYPE i) { return i << 3; }
-
-#define ADD_F(TYPE) TYPE test30_ ## TYPE (TYPE i) { return i + 37.0; }
-#define SUB_F(TYPE) TYPE test31_ ## TYPE (TYPE i) { return i - 37.0; }
-#define MUL_F(TYPE) TYPE test32_ ## TYPE (TYPE i) { return i * 37.0; }
-#define DIV_F(TYPE) TYPE test33_ ## TYPE (TYPE i) { return i / 37.0; }
-
-#define SHUFFLE1(TYPE) TYPE test34_ ## TYPE (TYPE i, TYPE mask) { return __builtin_shuffle (i, mask); }
-#define SHUFFLE2(TYPE) TYPE test35_ ## TYPE (TYPE i, TYPE j, TYPE mask) { return __builtin_shuffle (i, j, mask); }
-
-#define REAL_SHUFFLE1(TYPE, MASK_TYPE) TYPE test36_ ## TYPE (TYPE i, MASK_TYPE mask) { return __builtin_shuffle (i, mask); }
-#define REAL_SHUFFLE2(TYPE, MASK_TYPE) TYPE test37_ ## TYPE (TYPE i, TYPE j, MASK_TYPE mask) { return __builtin_shuffle (i, j, mask); }
-
-#define MADD(TYPE) TYPE test38_ ## TYPE (TYPE i, TYPE j, TYPE k) { return i * j + k; }
-#define MSUB(TYPE) TYPE test39_ ## TYPE (TYPE i, TYPE j, TYPE k) { return k - i * j; }
-
-#define ITERATE_FOR_ALL_INT_VECTOR_TYPES(FUNC) \
- FUNC (v16i8) \
- FUNC (v8i16) \
- FUNC (v4i32) \
- FUNC (v2i64) \
- FUNC (v16u8) \
- FUNC (v8u16) \
- FUNC (v4u32) \
- FUNC (v2u64)
-
-/*
- FUNC (v8i8) \
- FUNC (v4i16) \
- FUNC (v2i32) \
- FUNC (v4i8) \
- FUNC (v2i16)
-*/
-
-#define ITERATE_FOR_ALL_INT_SCALAR_TYPES(FUNC) \
- FUNC (i64) \
- FUNC (i32) \
- FUNC (i16) \
- FUNC (i8)
-
-#define ITERATE_FOR_ALL_INT_TYPES(FUNC) \
- ITERATE_FOR_ALL_INT_VECTOR_TYPES(FUNC) \
-
-/*
- ITERATE_FOR_ALL_INT_SCALAR_TYPES(FUNC)
-*/
-
-#define ITERATE_FOR_ALL_REAL_VECTOR_TYPES(FUNC) \
- FUNC (v4f32) \
- FUNC (v2f64) \
-
-/*
- FUNC (v2f32)
-*/
-
-#define ITERATE_FOR_ALL_REAL_SCALAR_TYPES(FUNC) \
- FUNC (f64) \
- FUNC (f32)
-
-#define ITERATE_FOR_ALL_REAL_TYPES(FUNC) \
- ITERATE_FOR_ALL_REAL_VECTOR_TYPES(FUNC) \
-
-/*
- ITERATE_FOR_ALL_REAL_SCALAR_TYPES(FUNC)
-*/
-
-#define ITERATE_FOR_ALL_TYPES(FUNC) \
- ITERATE_FOR_ALL_INT_TYPES(FUNC) \
- ITERATE_FOR_ALL_REAL_TYPES(FUNC)
-
-ITERATE_FOR_ALL_TYPES (ADD)
-ITERATE_FOR_ALL_TYPES (SUB)
-ITERATE_FOR_ALL_TYPES (MUL)
-ITERATE_FOR_ALL_TYPES (DIV)
-ITERATE_FOR_ALL_INT_TYPES (MOD)
-ITERATE_FOR_ALL_INT_TYPES (XOR)
-ITERATE_FOR_ALL_INT_TYPES (OR)
-ITERATE_FOR_ALL_INT_TYPES (AND)
-ITERATE_FOR_ALL_INT_TYPES (SHIFT_RIGHT)
-ITERATE_FOR_ALL_INT_TYPES (SHIFT_LEFT)
-ITERATE_FOR_ALL_TYPES (MINUS)
-ITERATE_FOR_ALL_INT_TYPES (BIT_COMPLEMENT)
-ITERATE_FOR_ALL_TYPES (MADD)
-ITERATE_FOR_ALL_TYPES (MSUB)
-ITERATE_FOR_ALL_INT_VECTOR_TYPES (SHUFFLE1)
-ITERATE_FOR_ALL_INT_VECTOR_TYPES (SHUFFLE2)
-REAL_SHUFFLE1 (v2f64, v2i64)
-REAL_SHUFFLE2 (v2f64, v2i64)
-REAL_SHUFFLE1 (v4f32, v4i32)
-REAL_SHUFFLE2 (v4f32, v4i32)
-
-/*
-ITERATE_FOR_ALL_TYPES (DECLARE)
-ITERATE_FOR_ALL_TYPES (RETURN)
-ITERATE_FOR_ALL_TYPES (ASSIGN)
-ITERATE_FOR_ALL_INT_TYPES (ADD_I)
-ITERATE_FOR_ALL_INT_TYPES (SUB_I)
-ITERATE_FOR_ALL_INT_TYPES (MUL_I)
-ITERATE_FOR_ALL_INT_TYPES (DIV_I)
-ITERATE_FOR_ALL_INT_TYPES (MOD_I)
-ITERATE_FOR_ALL_INT_TYPES (XOR_I)
-ITERATE_FOR_ALL_INT_TYPES (OR_I)
-ITERATE_FOR_ALL_INT_TYPES (AND_I)
-ITERATE_FOR_ALL_INT_TYPES (SHIFT_RIGHT_I)
-ITERATE_FOR_ALL_INT_TYPES (SHIFT_LEFT_I)
-ITERATE_FOR_ALL_REAL_TYPES (ADD_F)
-ITERATE_FOR_ALL_REAL_TYPES (SUB_F)
-ITERATE_FOR_ALL_REAL_TYPES (MUL_F)
-ITERATE_FOR_ALL_REAL_TYPES (DIV_F)
-ITERATE_FOR_ALL_TYPES (EQ)
-ITERATE_FOR_ALL_TYPES (NEQ)
-ITERATE_FOR_ALL_TYPES (LT)
-ITERATE_FOR_ALL_TYPES (LEQ)
-ITERATE_FOR_ALL_TYPES (GT)
-ITERATE_FOR_ALL_TYPES (GEQ)
-*/