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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Christophe Lyon <cl...@gcc.gnu.org>:

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

commit r13-102-ge2285af309000b74da0f7dc756a0b55e5f0b1b56
Author: Christophe Lyon <christophe.l...@arm.com>
Date:   Tue Apr 19 17:34:04 2022 +0200

    arm: Restrict support of vectors of boolean immediates (PR target/104662)

    This simple patch avoids the ICE described in the PR:
    internal compiler error: in simd_valid_immediate, at
config/arm/arm.cc:12866

    with an early exit from simd_valid_immediate if we are trying to
    handle a vector of booleans and MVE is not enabled.

    We still get an ICE when compiling the existing
    gcc.dg/rtl/arm/mve-vxbi.c without -march=armv8.1-m.main+mve:

    error: unrecognizable insn:
    (insn 7 5 8 2 (set (reg:V4BI 114)
            (const_vector:V4BI [
                    (const_int 1 [0x1])
                    (const_int 0 [0]) repeated x2
                    (const_int 1 [0x1])
                ])) -1
         (nil))
    during RTL pass: ira

    but there's little we can do since the testcase explicitly creates
    vectors of booleans which do need MVE.

    That is the reason why I do not add a testcase.

    2022-04-19  Christophe Lyon  <christophe.l...@arm.com>

            PR target/104662
            * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
            vector of booleans and MVE is not enabled.

Reply via email to