From: John David Anglin Date: Fri, 17 Feb 2006 22:09:58 +0000 (+0000) Subject: re PR target/26255 (internal compiler error: in reload_cse_simplify_operands, at... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1435ba17b5c4070038cb8116e428a9c899882b8b;p=gcc.git re PR target/26255 (internal compiler error: in reload_cse_simplify_operands, at postreload.c:391) PR target/26255 * gcc.c-torture/compile/pr26255.c: New test case. From-SVN: r111213 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 78d593d75a2..af4ac3c04b1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-02-16 John David Anglin + + PR target/26255 + * gcc.c-torture/compile/pr26255.c: New test case. + 2006-02-16 Roger Sayle * gfortran.fortran-torture/execute/where_10.f90: New test case. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr26255.c b/gcc/testsuite/gcc.c-torture/compile/pr26255.c new file mode 100644 index 00000000000..df3f0d92661 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr26255.c @@ -0,0 +1,31 @@ +typedef short int16_t; + +int round_sample(int *sum); + +#define MULS(ra, rb) ((ra) * (rb)) + +#define SUM8(sum, op, w, p) \ +{ \ + sum op MULS((w)[0 * 64], p[0 * 64]); \ + sum op MULS((w)[1 * 64], p[1 * 64]); \ + sum op MULS((w)[2 * 64], p[2 * 64]); \ + sum op MULS((w)[3 * 64], p[3 * 64]); \ + sum op MULS((w)[4 * 64], p[4 * 64]); \ + sum op MULS((w)[5 * 64], p[5 * 64]); \ + sum op MULS((w)[6 * 64], p[6 * 64]); \ + sum op MULS((w)[7 * 64], p[7 * 64]); \ +} + +void foo(int *dither_state, int *samples) +{ + int16_t *synth_buf; + const int16_t *w, *p; + int sum; + + sum = *dither_state; + p = synth_buf + 16; + SUM8(sum, +=, w, p); + p = synth_buf + 48; + SUM8(sum, -=, w + 32, p); + *samples = round_sample(&sum); +}