https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123573
Bug ID: 123573
Summary: Many aarch64 tests ICEing with invalid gimple since
r16-6709-ga4716ece529dfd
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: acoplan at gcc dot gnu.org
Target Milestone: ---
The following (reduced from gcc.target/aarch64/sve/acle/asm/dup_neonq_u64.c)
fails:
$ cat t.c
typedef __Uint64x2_t uint64x2_t;
#pragma GCC aarch64 "arm_sve.h"
#pragma GCC aarch64 "arm_neon_sve_bridge.h"
uint64x2_t dup_neonq_u64_z5_z4;
void dup_neonq_u64_z5() {
svuint64_t z5_res = svdup_neonq_u64(dup_neonq_u64_z5_z4);
}
$ gcc/xgcc -B gcc -c t.c -S -o /dev/null -O2 -march=armv8.2-a+sve
t.c: In function ‘dup_neonq_u64_z5’:
t.c:7:1: error: non-trivial conversion in ‘ssa_name’
7 | }
| ^
svuint64_t
__Uint64x2_t
z5_res_3 = dup_neonq_u64_z5_z4.0_1;
during GIMPLE pass: forwprop
t.c:7:1: internal compiler error: verify_gimple failed
0x23f4997 internal_error(char const*, ...)
$SRC/gcc/diagnostic-global-context.cc:787
0x10eb6b3 verify_gimple_in_cfg(function*, bool, bool)
$SRC/gcc/tree-cfg.cc:5599
0xf45baf execute_function_todo
$SRC/gcc/passes.cc:2100
0xf4650f execute_todo
$SRC/gcc/passes.cc:2152
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.
At least the following tests appear to be affected:
gcc.dg/torture/neon-sve-bridge.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_bf16.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_f16.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_f32.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_f64.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_mf8.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_s16.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_s32.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_s64.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_s8.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_u16.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_u32.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_u64.c
gcc.target/aarch64/sve/acle/asm/dup_neonq_u8.c
gcc.target/aarch64/sve/acle/general/dupq_1.c
gcc.target/aarch64/sve/acle/general/dupq_11.c
gcc.target/aarch64/sve/acle/general/dupq_12.c
gcc.target/aarch64/sve/acle/general/dupq_3.c
gcc.target/aarch64/sve/acle/general/dupq_5.c
gcc.target/aarch64/sve/acle/general/dupq_7.c
gcc.target/aarch64/sve/acle/general/dupq_8.c
gcc.target/aarch64/sve/acle/general/dupq_9.c
gcc.target/aarch64/sve/acle/general/ld1rq_1.c
gcc.target/aarch64/sve/acle/general/pr112906.c
gcc.target/aarch64/sve/acle/general/pr96463-1.c
gcc.target/aarch64/sve/acle/general/pr96463-2.c
gcc.target/aarch64/sve/pr110280.c