https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80125
Bug ID: 80125
Summary: [7 Regression] r246297 causes segfault in
reg_used_between_p()
Product: gcc
Version: 7.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
CC: segher at gcc dot gnu.org
Target Milestone: ---
Host: ppc64le
Target: ppc64le
Build: ppc64le
Since r246297 I see:
trippels@gcc2-power8 ffmpeg % cat postprocess.i
int a[1];
void dering_altivec() {
__attribute__((altivec(vector__))) int b, e, f, g, h, j, n;
__attribute__((altivec(vector__))) unsigned c, d;
f = __builtin_vec_sums(h, b);
__attribute__((altivec(vector__))) int i = __builtin_vec_mergel(f, g);
__attribute__((altivec(vector__))) int k = __builtin_vec_mergel(i, j);
__attribute__((altivec(vector__))) int l = __builtin_vec_sl(k, c);
__attribute__((altivec(vector__))) int m = __builtin_vec_sl(l, d);
__attribute__((altivec(vector__))) char o;
__attribute__((altivec(vector__))) int p = __builtin_vec_perm(m, n, o);
e = __builtin_vec_sra(p, c);
__builtin_vec_st(e, 0, a);
}
trippels@gcc2-power8 ffmpeg % gcc -c -O2 postprocess.i
postprocess.i: In function ‘dering_altivec’:
postprocess.i:14:1: internal compiler error: Segmentation fault
}
^
0x108d4d73 crash_signal
../../gcc/gcc/toplev.c:337
0x1084f7d8 reg_used_between_p(rtx_def const*, rtx_insn const*, rtx_insn const*)
../../gcc/gcc/rtlanal.c:1093
0x110a4677 can_combine_p
../../gcc/gcc/combine.c:1958
0x110ae71f try_combine
../../gcc/gcc/combine.c:2985
0x110b5497 combine_instructions
../../gcc/gcc/combine.c:1294
0x110b5497 rest_of_handle_combine
../../gcc/gcc/combine.c:14645
0x110b5497 execute
../../gcc/gcc/combine.c:14690
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.