Allow non-constant arguments to conversion intrinsics.
authortsmigiel <tsmigiel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Apr 2009 18:48:59 +0000 (18:48 +0000)
committertsmigiel <tsmigiel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Apr 2009 18:48:59 +0000 (18:48 +0000)
commit56c7bfc2cd30535e7ea68a43e1135985de900a0b
treec233f04205e601fe5a60f616157b369cca22b5a7
parentd743aba2f4aebf422c08b41db532d0c78603a97f
Allow non-constant arguments to conversion intrinsics.
* spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
* predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
* spu.c (print_operand): Handle 'v' and 'w'.
(exp2_immediate_p, spu_gen_exp2): Define.
* spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
spu_convtf_1): Update parameter descriptions.
* spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu):
Update.
* constraints.md ('v', 'w'): New.
* spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
Remove.
(i2f, I2F): New define_mode_attr.
(floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
fixuns_truncv4sfv4si2):  Update to use mode attribute.
(float<mode><i2f>2_mul, float<mode><i2f>2_div,
fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
patterns for combine.
* gcc.target/spu/intrinsics-3.c: Update tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146849 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/spu/constraints.md
gcc/config/spu/predicates.md
gcc/config/spu/spu-builtins.def
gcc/config/spu/spu-builtins.md
gcc/config/spu/spu-protos.h
gcc/config/spu/spu.c
gcc/config/spu/spu.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/spu/intrinsics-3.c