]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR c++/54427 (Expose more vector extensions)
authorMarc Glisse <marc.glisse@inria.fr>
Tue, 9 Oct 2012 06:18:29 +0000 (08:18 +0200)
committerMarc Glisse <glisse@gcc.gnu.org>
Tue, 9 Oct 2012 06:18:29 +0000 (06:18 +0000)
commita212e43fca22f730987ad4d15a0bd58efae9677e
tree41770fbb2dff0d56518b79bce3dd01c52d1b2759
parentf5220359f4b2ee333e38994e3c275180ff09035f
re PR c++/54427 (Expose more vector extensions)

2012-10-09  Marc Glisse  <marc.glisse@inria.fr>

PR c++/54427

c/
* c-typeck.c: Include c-common.h.
(enum stv_conv): Moved to c-common.h.
(scalar_to_vector): Moved to c-common.c.
(build_binary_op): Adapt to scalar_to_vector's new prototype.
* Make-lang.in: c-typeck.c depends on c-common.h.

c-family/
* c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
more operations. Make error messages optional.
* c-common.h (enum stv_conv): Moved from c-typeck.c.
(scalar_to_vector): Declare.

cp/
* typeck.c (cp_build_binary_op): Handle mixed scalar-vector
operations.
[LSHIFT_EXPR, RSHIFT_EXPR]: Likewise.

gcc/
* fold-const.c (fold_binary_loc): Use build_zero_cst instead of
build_int_cst for a potential vector.

testsuite/
* c-c++-common/vector-scalar.c: New testcase.
* g++.dg/ext/vector18.C: New testcase.
* g++.dg/ext/vector5.C: This is not an error anymore.
* gcc.dg/init-vec-1.c: Move ...
* c-c++-common/init-vec-1.c: ... here. Adapt error message.
* gcc.c-torture/execute/vector-shift1.c: Move ...
* c-c++-common/torture/vector-shift1.c: ... here.
* gcc.dg/scal-to-vec1.c: Move ...
* c-c++-common/scal-to-vec1.c: ... here. Avoid narrowing for
C++11. Adapt error messages.
* gcc.dg/convert-vec-1.c: Move ...
* c-c++-common/convert-vec-1.c: ... here.
* gcc.dg/scal-to-vec2.c: Move ...
* c-c++-common/scal-to-vec2.c: ... here.

From-SVN: r192238
19 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/c/ChangeLog
gcc/c/Make-lang.in
gcc/c/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/typeck.c
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/convert-vec-1.c [moved from gcc/testsuite/gcc.dg/convert-vec-1.c with 100% similarity]
gcc/testsuite/c-c++-common/init-vec-1.c [moved from gcc/testsuite/gcc.dg/init-vec-1.c with 68% similarity]
gcc/testsuite/c-c++-common/scal-to-vec1.c [moved from gcc/testsuite/gcc.dg/scal-to-vec1.c with 60% similarity]
gcc/testsuite/c-c++-common/scal-to-vec2.c [moved from gcc/testsuite/gcc.dg/scal-to-vec2.c with 100% similarity]
gcc/testsuite/c-c++-common/torture/vector-shift1.c [moved from gcc/testsuite/gcc.c-torture/execute/vector-shift1.c with 93% similarity]
gcc/testsuite/c-c++-common/vector-scalar.c [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/vector18.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/vector5.C