diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 2002-10-11 10:59:06 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2002-10-11 10:59:06 +0100 |
commit | 0488fa7c8f0e7d014cdfdeb0ddac6f9ffc235db6 (patch) | |
tree | f1b7dd6ee730b907128000deff13e31ed77a885a | |
parent | d92b6b949d1e674672f93bb618efb8da3cb14bf1 (diff) | |
download | gcc-0488fa7c8f0e7d014cdfdeb0ddac6f9ffc235db6.zip gcc-0488fa7c8f0e7d014cdfdeb0ddac6f9ffc235db6.tar.gz gcc-0488fa7c8f0e7d014cdfdeb0ddac6f9ffc235db6.tar.bz2 |
*** empty log message ***
From-SVN: r58050
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/simd-5.c | 12 |
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b49819b..c2c29c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 11 10:56:17 2002 J"orn Rennecke <joern.rennecke@superh.com> + + * emit-rtl.c (gen_lowpart_common): When asked to make a vector from + an integer, use simplify_gen_subreg. + 2002-10-10 Aldy Hernandez <aldyh@redhat.com> * extend.texi (Vector Extensions): Remove comment about single diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 889064f..2cf4107 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -999,6 +999,10 @@ gen_lowpart_common (mode, x) else if (GET_CODE (x) == SUBREG || GET_CODE (x) == REG || GET_CODE (x) == CONCAT || GET_CODE (x) == CONST_VECTOR) return simplify_gen_subreg (mode, x, GET_MODE (x), offset); + else if ((GET_MODE_CLASS (mode) == MODE_VECTOR_INT + || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT) + && GET_MODE (x) == VOIDmode) + return simplify_gen_subreg (mode, x, int_mode_for_mode (mode), offset); /* If X is a CONST_INT or a CONST_DOUBLE, extract the appropriate bits from the low-order part of the constant. */ else if ((GET_MODE_CLASS (mode) == MODE_INT diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 78787bc..d54efb1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Fri Oct 11 10:56:49 2002 Richard Shann <richard.shann@superh.com> + + * gcc.c-torture/compile/simd-5.c: New test. + 2002-10-10 Jim Wilson <wilson@redhat.com> * gcc.c-torture/execute/20021010-1.c: New test. diff --git a/gcc/testsuite/gcc.c-torture/compile/simd-5.c b/gcc/testsuite/gcc.c-torture/compile/simd-5.c new file mode 100644 index 0000000..016cccd --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/simd-5.c @@ -0,0 +1,12 @@ +#define vector64 __attribute__((vector_size(8))) + +main(){ + + vector64 int c; +vector64 int a = {1, -1}; +vector64 int b = {2, -2}; +c = -a + b*b*(-1LL); +/* c is now {5, 3} */ + + printf("result is %llx\n", (long long)c); +} |