https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100885

            Bug ID: 100885
           Summary: [12 Regression] ICE: in extract_constrain_insn, at
                    recog.c:2671: insn does not satisfy its constraints:
                    {sse4_1_zero_extendv8qiv8hi2}
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 50912
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50912&action=edit
auto-reduced testcase (from OpenTTD sources)

Compiler output:
$ x86_64-pc-linux-gnu-gcc -O2 -mavx512vl testcase.C
testcase.C: In instantiation of 'void Blitter_32bppSSE4_Anim::Draw(const
Blitter::BlitterParams*, ZoomLevel) [with BlitterMode <anonymous> =
BM_COLOUR_REMAP; Blitter_32bppSSE_Base::ReadMode <anonymous> =
Blitter_32bppSSE_Base::RM_WITH_MARGIN; Blitter_32bppSSE_Base::BlockType
<anonymous> = Blitter_32bppSSE_Base::BT_NONE; bool <anonymous> = true; bool
<anonymous> = false]':
testcase.C:154:62:   required from here
testcase.C:120:27: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
  120 |   Colour *src_rgba_line = (Colour *)sd->data;
      |                           ^~~~~~~~~~~~~~~~~~
testcase.C:130:19: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
  130 |       int mvX2 = *(unsigned *)sd->infos[zoom], m = byte(mvX2);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
testcase.C: In member function 'void Blitter_32bppSSE4_Anim::Draw(const
Blitter::BlitterParams*, ZoomLevel) [with BlitterMode <anonymous> =
BM_COLOUR_REMAP; Blitter_32bppSSE_Base::ReadMode <anonymous> =
Blitter_32bppSSE_Base::RM_WITH_MARGIN; Blitter_32bppSSE_Base::BlockType
<anonymous> = Blitter_32bppSSE_Base::BT_NONE; bool <anonymous> = true; bool
<anonymous> = false]':
testcase.C:150:1: error: insn does not satisfy its constraints:
  150 | }
      | ^
(insn 295 221 134 12 (set (reg:V8HI 22 xmm2 [230])
        (zero_extend:V8HI (vec_select:V8QI (reg:V16QI 52 xmm16 [orig:134
__trans_tmp_5 ] [134])
                (parallel [
                        (const_int 0 [0])
                        (const_int 1 [0x1])
                        (const_int 2 [0x2])
                        (const_int 3 [0x3])
                        (const_int 4 [0x4])
                        (const_int 5 [0x5])
                        (const_int 6 [0x6])
                        (const_int 7 [0x7])
                    ])))) "testcase.C":49:46 4653 {sse4_1_zero_extendv8qiv8hi2}
     (expr_list:REG_DEAD (reg:V16QI 52 xmm16 [orig:134 __trans_tmp_5 ] [134])
        (nil)))
during RTL pass: cprop_hardreg
testcase.C:150:1: internal compiler error: in extract_constrain_insn, at
recog.c:2671
0x7ece3a _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /repo/gcc-trunk/gcc/rtl-error.c:108
0x7ecec7 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /repo/gcc-trunk/gcc/rtl-error.c:118
0x7dbaaf extract_constrain_insn(rtx_insn*)
        /repo/gcc-trunk/gcc/recog.c:2671
0x1292534 copyprop_hardreg_forward_1
        /repo/gcc-trunk/gcc/regcprop.c:825
0x129383e execute
        /repo/gcc-trunk/gcc/regcprop.c:1390
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.

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r12-1164-20210602094549-g659cc7d6320-checking-yes-rtl-df-extra-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
--with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r12-1164-20210602094549-g659cc7d6320-checking-yes-rtl-df-extra-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.0 20210602 (experimental) (GCC)

Reply via email to