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

            Bug ID: 125389
           Summary: ICE if compile __builtin_vsx_xvtlsbb_all_ones with
                    -mno-vsx
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Keywords: ice-checking
          Severity: normal
          Priority: P3
         Component: diagnostics
          Assignee: kishan at gcc dot gnu.org
          Reporter: kishan at gcc dot gnu.org
                CC: avinashd at gcc dot gnu.org, jskumari at gcc dot gnu.org,
                    meissner at gcc dot gnu.org
  Target Milestone: ---
              Host: power*-linux-gnu
            Target: power*-linux-gnu
             Build: power*-linux-gnu

testcase: https://godbolt.org/z/daYdhjdKa

#include <altivec.h>

extern vector signed char abc;

int main() {
    return __builtin_vsx_xvtlsbb_all_ones (abc);
}

Compiling above test with -mcpu=power10 and -mno-vsx, gives ICE

<source>: In function 'main':
<source>:8:1: error: unable to generate reloads for:
    8 | }
      | ^
(insn 7 6 8 2 (set (reg:CC 121)
        (unspec:CC [
                (reg:V16QI 117 [ abc.0_1 ])
            ] UNSPEC_XVTLSBB)) "<source>":7:12 1309 {*xvtlsbb_internal}
     (expr_list:REG_DEAD (reg:V16QI 117 [ abc.0_1 ])
        (nil)))
during RTL pass: reload
<source>:8:1: internal compiler error: in curr_insn_transform, at
lra-constraints.cc:4521
0x22ae4e2 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
        ???:0
0x22a2ecf internal_error(char const*, ...)
        ???:0
0x9c4c27 fancy_abort(char const*, int, char const*)
        ???:0
0x823ad2 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ???:0
0xfbe513 lra_constraints(bool)
        ???:0
0xfa2bb2 lra(_IO_FILE*, int)
        ???:0


Instead of ICE it should report,

error: '__builtin_vsx_xvtlsbb_all_ones' requires the '-mcpu=power10' and
'-mvsx' options

Or 

error: '__builtin_vsx_xvtlsbb_all_ones' requires the '-mvsx' option

Reply via email to