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

groche97 at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |groche97 at gmail dot com

--- Comment #1 from groche97 at gmail dot com ---
I was reproduce it with a different code and v extensions in 17.0.0_p20261004:

#include <riscv_vector.h>

vint32m4_t f(vint8m4_t p1, vint32m4_t p2, vint8m2_t p3) {
        vint8m2_t a = __riscv_vget_v_i8m4_i8m2(p1, 0);
        vint16m4_t b = __riscv_vwmul_vv_i16m4(a, p3, 32);
        vint16m2_t c = __riscv_vget_v_i16m4_i16m2(b, 0);
        vint32m4_t d = __riscv_vwmacc_vx_i32m4(p2, 1, c, 0);
        return d;
}

____________________________________________

gcc-17 -c minimum.c -march=rv64gcv -mabi=lp64d -O1

minimum.c: In function ‘f’:
minimum.c:10:1: error: insn does not satisfy its constraints:
   10 | }
      | ^
(insn 10 9 32 2 (set (reg/v:RVVM4HI 104 v8 [orig:135 b ] [135])
        (if_then_else:RVVM4HI (unspec:RVVMF4BI [
                    (const_vector:RVVMF4BI repeat [
                            (const_int 1 [0x1])
                        ])
                    (reg:DI 15 a5 [141])
                    (const_int 2 [0x2]) repeated x2
                    (const_int 0 [0])
                    (reg:SI 66 vl)
                    (reg:SI 67 vtype)
                ] UNSPEC_VPREDICATE)
            (mult:RVVM4HI (sign_extend:RVVM4HI (reg:RVVM2QI 104 v8 [orig:144 p1
] [144]))
                (sign_extend:RVVM4HI (reg:RVVM2QI 112 v16 [orig:146 p3 ]
[146])))
            (unspec:RVVM4HI [
                    (reg:DI 0 zero)
                ] UNSPEC_VUNDEF))) "minimum.c":6:17 11106
{pred_dual_widen_mulsrvvm4hi}
     (nil))
during RTL pass: reload
minimum.c:10:1: internal compiler error: in extract_constrain_insn, at
recog.cc:2796
0x2ac3546743 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*, void**,
diagnostics::kind)
        ???:0
0x2ac353d3b5 internal_error(char const*, ...)
        ???:0
0x2ac0de5ce7 fancy_abort(char const*, int, char const*)
        ???:0
0x2ac0dc5bf7 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ???:0
0x2ac0dc5c21 _fatal_insn_not_found(rtx_def const*, char const*, int, char
const*)
        ???:0
0x2ac158d42f extract_constrain_insn(rtx_insn*)
        ???:0
0x2ac140dc67 lra(_IO_FILE*, int)
        ???:0
/usr/libexec/gcc/riscv64-unknown-linux-gnu/17/cc1 -quiet -imultilib . minimum.c
-quiet -dumpbase minimum.c -dumpbase-ext .c -march=rv64gcv -mabi=lp64d
-misa-spec=20191213 -mtls-dialect=trad
-march=rv64imafdcv_zicsr_zifencei_zmmul_zaamo_zalrsc_zca_zcd_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b
-O1 -foffload-options=-fno-stack-protector -o /tmp/ccBF7WR7.s

if I replace vint32m4_t f(vint8m4_t p1, vint32m4_t p2, vint8m2_t p3) for
vint32m4_t f(vint8m4_t p1, vint8m2_t p3, vint32m4_t p2) the ICE is not produced

Reply via email to