https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88051
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-11-15 Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- Confirmed. ./cc1 -O2 -m32 -march=skylake-avx512 -mfpmath=both ffv1enc.i (gdb) bt #0 internal_error (gmsgid=gmsgid@entry=0x1d7c231 "in %s, at %s:%d") at /home/uros/gcc-svn/trunk/gcc/diagnostic.c:1500 #1 0x00000000007705c9 in fancy_abort (file=file@entry=0x1b34318 "/home/uros/gcc-svn/trunk/gcc/config/i386/sync.md", line=line@entry=1762, function=function@entry=0x1b379c0 <add_clobbers(rtx_def*, int)::__FUNCTION__> "add_clobbers") at /home/uros/gcc-svn/trunk/gcc/diagnostic.c:1572 #2 0x00000000013311dc in add_clobbers (pattern=pattern@entry=0x7fffefa76a30, insn_code_number=insn_code_number@entry=1266) at /home/uros/gcc-svn/trunk/gcc/config/i386/sync.md:1762 #3 0x000000000146f7c2 in recog_for_combine_1 (pnewpat=0x7fffffffcdd0, insn=0x7ffff091dd80, pnotes=0x7fffffffce20) at /home/uros/gcc-svn/trunk/gcc/combine.c:11451 #4 0x00000000014704df in recog_for_combine (pnewpat=pnewpat@entry=0x7fffffffcdd0, insn=insn@entry=0x7ffff091dd80, pnotes=pnotes@entry=0x7fffffffce20) at /home/uros/gcc-svn/trunk/gcc/combine.c:11651 #5 0x0000000001483ecd in try_combine (i3=0x7ffff091dd80, i2=<optimized out>, i1=0x0, i0=0x0, The problematic part is in combine, where: #4 0x00000000014704df in recog_for_combine (pnewpat=pnewpat@entry=0x7fffffffcdd0, insn=insn@entry=0x7ffff091dd80, pnotes=pnotes@entry=0x7fffffffce20) at /home/uros/gcc-svn/trunk/gcc/combine.c:11651 11651 int insn_code_number = recog_for_combine_1 (pnewpat, insn, pnotes); (gdb) p debug_rtx (insn) (insn 1576 1575 1577 194 (parallel [ (set (reg:V4SI 909) (subreg:V4SI (mem:DI (plus:SI (reg/f:SI 244 [ _206 ]) (reg:SI 1143)) [9 *_206 S8 A32]) 0)) (clobber (scratch:V4SI)) ]) "src/libavcodec/ffv1enc.c":853:23 1266 {movdi_to_sse} (nil)) (gdb) down #3 0x000000000146f7c2 in recog_for_combine_1 (pnewpat=0x7fffffffcdd0, insn=0x7ffff091dd80, pnotes=0x7fffffffce20) at /home/uros/gcc-svn/trunk/gcc/combine.c:11451 11451 add_clobbers (newpat, insn_code_number); (gdb) p debug_rtx (newpat) (parallel [ (set (reg:V4SI 909) (subreg:V4SI (mem:DI (plus:SI (reg/f:SI 244 [ _206 ]) (reg:SI 1143)) [9 *_206 S8 A32]) 0)) (nil) ]) (gdb) p insn_code_number $12 = 1266 The relevant pattern is defined as: (define_insn_and_split "movdi_to_sse" [(parallel [(set (match_operand:V4SI 0 "register_operand" "=?x,x") (subreg:V4SI (match_operand:DI 1 "nonimmediate_operand" "r,m") 0)) (clobber (match_scratch:V4SI 2 "=&x,X"))])] "!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC" "#" "&& reload_completed" [(const_int 0)] But for some reason isn't listed in generated add_clobbers in insn-emit.c. Note that there is no "case 1266:" in the switch, although there is: case 4852: case 4851: case 4836: case 4835: case 4820: case 4819: case 4804: case 4803: XVECEXP (pattern, 0, 1) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (V4SImode)); break; It doesn't look like a target problem to me.