* fold-const.c (native_encode_expr): New function to encode
commit5f4092eda8363452b5fab07a8a0d9248306ddca7
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Apr 2006 21:10:31 +0000 (13 21:10 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Apr 2006 21:10:31 +0000 (13 21:10 +0000)
treebe0b8aa4617e2c18a9c814b01cde5148cc91bc36
parent0cb9211d3a9d2057a93e40f8bf21d00962e0091f
* fold-const.c (native_encode_expr): New function to encode
the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
or VECTOR_CST into a specified buffer.
(native_encode_int): New function.
(native_encode_real): New function.
(native_encode_complex): New function.
(native_encode_vector): New function.
(native_interpret_expr): Inverse of native_encode_expr to convert
a target representation into an INTEGER_CST, REAL_CST etc...
(native_interpret_int): New function.
(native_interpret_real): New function.
(native_interpret_complex): New function.
(native_interpret_vector): New function.
(fold_view_convert_expr): New function to constant fold/evaluate
a VIEW_CONVERT_EXPR of a suitable constant expression.
(fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
Change call of build1 to fold_build1 when constructing a
VIEW_CONVERT_EXPR.

* gcc.target/i386/20050113-1.c: Tweak testcase to reflect that casts
of integers to a vector types are now constant expressions in C.
* gcc.dg/vect/vect-fold-1.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112927 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-fold-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/20050113-1.c