Ref: http://bugs.debian.org/352529
The attached testcase, reduced from the Debian BTS bug report, causes an ICE bug.c: In function 'foo': bug.c:31: error: insn does not satisfy its constraints: (insn 156 35 37 0 (set (reg:HI 70 %fr23 [122]) (reg:HI 20 %r20)) 53 {*pa.md:2926} (nil) (nil)) bug.c:31: internal compiler error: in reload_cse_simplify_operands, at postreload.c:391 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.0/README.Bugs>. ------------ bug.c ------------- 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); } ------------ bug.c ------------- $ cc -O2 -c bug.c bug.c: In function 'foo': bug.c:31: error: insn does not satisfy its constraints: (insn 156 35 37 0 (set (reg:HI 70 %fr23 [122]) (reg:HI 20 %r20)) 53 {*pa.md:2926} (nil) (nil)) bug.c:31: internal compiler error: in reload_cse_simplify_operands, at postreload.c:391 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.0/README.Bugs>. Problem only happens with -O2. -- Summary: [3.3 regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:391 Product: gcc Version: 4.0.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tausq at debian dot org GCC build triplet: hppa-linux GCC host triplet: hppa-linux GCC target triplet: hppa-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26255