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