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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <h...@gcc.gnu.org>:

https://gcc.gnu.org/g:dc07752af00f9e8ce3c9b25bf7dd4941a5df682d

commit r16-2233-gdc07752af00f9e8ce3c9b25bf7dd4941a5df682d
Author: Uros Bizjak <ubiz...@gmail.com>
Date:   Mon Jul 14 17:16:36 2025 +0800

    x86: Check all 0s/1s vectors with standard_sse_constant_p

    commit 77473a27bae04da99d6979d43e7bd0a8106f4557
    Author: H.J. Lu <hjl.to...@gmail.com>
    Date:   Thu Jun 26 06:08:51 2025 +0800

        x86: Also handle all 1s float vector constant

    replaces

    (insn 29 28 30 5 (set (reg:V2SF 107)
            (mem/u/c:V2SF (symbol_ref/u:DI ("*.LC0") [flags 0x2]) [0  S8 A64]))
2031 {*movv2sf_internal}
         (expr_list:REG_EQUAL (const_vector:V2SF [
                    (const_double:SF -QNaN [-QNaN]) repeated x2
                ])
            (nil)))

    with

    (insn 98 13 14 3 (set (reg:V8QI 112)
            (const_vector:V8QI [
                    (const_int -1 [0xffffffffffffffff]) repeated x8
                ])) -1
         (nil))
    ...
    (insn 29 28 30 5 (set (reg:V2SF 107)
            (subreg:V2SF (reg:V8QI 112) 0)) 2031 {*movv2sf_internal}
         (expr_list:REG_EQUAL (const_vector:V2SF [
                    (const_double:SF -QNaN [-QNaN]) repeated x2
                ])
            (nil)))

    which leads to

    pr121015.c: In function ârender_result_from_bake_hâ:
    pr121015.c:34:1: error: unrecognizable insn:
       34 | }
          | ^
    (insn 98 13 14 3 (set (reg:V8QI 112)
            (const_vector:V8QI [
                    (const_int -1 [0xffffffffffffffff]) repeated x8
                ])) -1
         (expr_list:REG_EQUIV (const_vector:V8QI [
                    (const_int -1 [0xffffffffffffffff]) repeated x8
                ])
            (nil)))
    during RTL pass: ira

    Check all 0s/1s vectors with standard_sse_constant_p to avoid unsupported
    all 1s vectors.

    Co-Developed-by: H.J. Lu <hjl.to...@gmail.com>

    gcc/

            PR target/121015
            * config/i386/i386-features.cc (ix86_broadcast_inner): Check all
            0s/1s vectors with standard_sse_constant_p.

    gcc/testsuite/

            PR target/121015
            * gcc.target/i386/pr121015.c: New test.

Reply via email to