OSDN Git Service

2007-07-13 Sa Liu <saliu@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jul 2007 18:31:08 +0000 (18:31 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jul 2007 18:31:08 +0000 (18:31 +0000)
commit5474166e273d10ef8a339801e6bcdf9882c3ab81
tree5426797cdb67dde5f5c7640c88b2c18b729ddd9b
parenta2fa3109521b2f8a7080f30ab999d9a74b329070
2007-07-13  Sa Liu  <saliu@de.ibm.com>

* config.gcc: Add options for arch and tune on SPU.
* config/spu/predicates.md: Add constant operands 0 and 1.
* config/spu/spu-builtins.def: Add builtins for double precision
floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
spu_testsv.
* config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
a CELLEDP target.
* config/spu/spu-protos.h: Add new function prototypes.
* config/spu/spu.c (spu_override_options): Check options -march and
-mtune.
(spu_comp_icode): Add comparison code for DFmode and vector mode.
(spu_emit_branch_or_set): Use the new code for DFmode and vector
mode comparison.
(spu_const_from_int): New.  Create a vector constant from 4 ints.
(get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
(spu_emit_vector_compare): New.  Emit vector compare.
(spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
* config/spu/spu.h: Add options -march and -mtune.  Define processor
types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
CANONICALIZE_COMPARISON.
* config/spu/spu.md: Add new insns for double precision compare
and double precision vector compare.  Add vcond and smax/smin patterns
to enable DFmode vector conditional expression.
* config/spu/spu.opt: Add options -march and -mtune.
* config/spu/spu_internals.h: Add builtins for CELLEDP target:
si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
both CELL and CELLEDP targets: spu_testsv.
* config/spu/spu_intrinsics.h: Add flag mnemonics for test special
values.

testsuite/
* gcc.dg/vect/fast-math-vect-reduc-7.c: Switch on test
for V2DFmode vector conditional expression.
* gcc.target/spu/dfcmeq.c: New.  Test combination of abs
and dfceq patterns.
* gcc.target/spu/dfcmgt.c: New.  Test combination of abs
and dfcgt patterns.
* gcc.target/spu/intrinsics-2.c: New.  Test intrinsics for
V2DFmode comparison and test special values.
* lib/target-supports.exp: Switch on test for V2DFmode
vector conditional expression.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126626 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/spu/predicates.md
gcc/config/spu/spu-builtins.def
gcc/config/spu/spu-c.c
gcc/config/spu/spu-protos.h
gcc/config/spu/spu.c
gcc/config/spu/spu.h
gcc/config/spu/spu.md
gcc/config/spu/spu.opt
gcc/config/spu/spu_internals.h
gcc/config/spu/spu_intrinsics.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
gcc/testsuite/lib/target-supports.exp