https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123144
Bug ID: 123144
Summary: [16 Regression] PowerPC64LE: ICE at -O3 during RTL
pass: sched1
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: xxs_chy at outlook dot com
Target Milestone: ---
Reproducer: https://godbolt.org/z/xEa9fWWEh
Testcase:
#include <stdint.h>
#define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type))))
int8_t backsmith_snippet_893(int8_t BS_ARG_1, BS_VEC(uint8_t, 32) BS_ARG_5)
{
BS_VEC(uint16_t, 8) BS_VAR_0;
for (;;)
for (uint64_t BS_INC_1 = 0; BS_INC_1 < 13; BS_INC_1 += 1)
{
if (BS_ARG_5[2])
for (;;)
__builtin_convertvector((BS_VEC(int8_t, 16)){},
BS_VEC(uint8_t, 16));
uint8_t BS_TEMP_59 = __builtin_convertvector(
__builtin_shufflevector(
__builtin_convertvector((BS_VEC(int8_t, 4)){},
BS_VEC(uint16_t, 4)),
__builtin_convertvector((BS_VEC(int8_t, 4)){ BS_ARG_1 },
BS_VEC(uint16_t, 4)),
4, 2, 2, 2, 6, 3, 0, 0, 3, 2, 1, 2, 4, 0, 1, 4, 2, 0, 3, 6,
4, 3, 1, 0, 2, 5, 3, 7, 4, 2, 4, 2),
BS_VEC(uint8_t, 32))[(BS_INC_1 ? BS_VAR_0[3] : 2) ?: 2];
uint8_t BS_TEMP_60 = BS_TEMP_59;
for (; BS_TEMP_60;)
;
BS_VEC(uint32_t, 8)
BS_TEMP_68 = __builtin_convertvector(
__builtin_convertvector(
(BS_VEC(uint64_t, 8)){ BS_INC_1, BS_INC_1, BS_INC_1,
BS_INC_1, BS_INC_1, BS_INC_1,
BS_INC_1, BS_INC_1 },
BS_VEC(uint16_t, 8)),
BS_VEC(uint32_t, 8));
BS_VAR_0[BS_INC_1 < 8 ? BS_INC_1 : 0] = BS_TEMP_68[0]
* BS_TEMP_68[1] * BS_TEMP_68[2] * BS_TEMP_68[3] * BS_TEMP_68[4]
* 6 * BS_TEMP_68[7];
}
}
Command:
> powerpc64le-unknown-linux-musl-gcc -O3 test.c
Dump:
during RTL pass: sched1
<source>:37:1: internal compiler error: in model_update_limit_points_in_group,
at haifa-sched.cc:1990
37 | }
| ^
0x21ece42 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
???:0
0x21e1b6f internal_error(char const*, ...)
???:0
0x9affc7 fancy_abort(char const*, int, char const*)
???:0
0x200512c schedule_block(basic_block_def**, void*)
???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Compiler returned: 1