On Fri, Oct 05, 2018 at 06:49:58PM +0200, Uros Bizjak wrote:
> This constraint is used in move patterns which do not depend on TARGET_SSE.
> 
> Also, rename "vector_move_operand" to "nonimm_or_0_operand".
> 
> 2018-10-05  Uros Bizjak  <ubiz...@gmail.com>
> 
>     * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
>     * config/i386/predicates.md (nonimm_or_0_operand): Rename
>     from vector_move_operand.  Update all uses.
> 
> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
> 
> Committed to mainline SVN.

This seems to have broken a bunch of tests for 32-bit gcc not configured to
default to -msse/-msse2, guess it should be reproduceable with
make check-gcc RUNTESTFLAGS='--target_board=unix/-m32/-mno-sse i386.exp'

+FAIL: gcc.target/i386/3dnow-1.c (internal compiler error)
+FAIL: gcc.target/i386/3dnow-1.c (test for excess errors)
+FAIL: gcc.target/i386/mmx-8.c (internal compiler error)
+FAIL: gcc.target/i386/mmx-8.c (test for excess errors)
+UNRESOLVED: gcc.target/i386/mmx-8.c compilation failed to produce executable
+FAIL: gcc.target/i386/pr14552.c (internal compiler error)
+FAIL: gcc.target/i386/pr14552.c (test for excess errors)
+UNRESOLVED: gcc.target/i386/pr14552.c scan-assembler-not %mm

The ICEs are always similar:
error: could not split insn
(insn:TI 7 30 21 2 (set (mem/c:V2SF (plus:SI (reg/f:SI 7 sp)
                (const_int 8 [0x8])) [0  S8 A64])
        (const_vector:V2SF [
                (const_double:SF 0.0 [0x0.0p+0])
                (const_double:SF 0.0 [0x0.0p+0])
            ])) "/home/jakub/src/gcc/obj27/gcc/include/mm3dnow.h":172:39 835 
{*movv2sf_internal}
     (nil))

        Jakub

Reply via email to