https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100241
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Single, hopefully valid TU, no LTO needed: $ gcc -march=armv8-a -fPIC -O3 100241.c -fvisibility=internal -c 100241.c: In function ‘vp9_first_pass_encode_tile_mb_row’: 100241.c:32:1: error: unable to generate reloads for: 32 | } | ^ (insn 74 89 90 14 (set (reg:V2DI 136) (vec_concat:V2DI (mem:DI (plus:DI (reg/v/f:DI 178 [orig:113 fp_acc_data ] [113]) (const_int 16 [0x10])) [3 fp_acc_data_15(D)->frame_noise_energy+0 S8 A64]) (mem:DI (plus:DI (reg/v/f:DI 178 [orig:113 fp_acc_data ] [113]) (const_int 24 [0x18])) [3 fp_acc_data_15(D)->intra_error+0 S8 A64]))) "100241.c":23:63 2473 {load_pair_lanesdi} (nil)) during RTL pass: reload 100241.c:32:1: internal compiler error: in curr_insn_transform, at lra-constraints.c:4133 0x152862f diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char const*, std::__va_list*, diagnostic_t) ???:0 0xce52ff internal_error(char const*, ...) ???:0 0xce53f3 fancy_abort(char const*, int, char const*) ???:0 0x7db1d7 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ???:0 0xea8d57 curr_insn_transform(bool) ???:0 0xea3d87 lra_constraints(bool) ???:0 0x131523b lra(_IO_FILE*) ???:0 0x1308fff (anonymous namespace)::pass_reload::execute(function*) ???:0 extern char num_4x4_blocks_high_lookup, num_4x4_blocks_wide_lookup, vp9_foreach_transformed_block_in_plane_xd_0_0_0; int vp9_first_pass_encode_tile_mb_row_cpi_0, vp9_first_pass_encode_tile_mb_row_tile_data_0_0, vp9_encode_sby_pass1_x; typedef void foreach_transformed_block_visitor(); void vp9_encode_sby_pass1(); typedef struct { long coded_error; long sr_coded_error; long frame_noise_energy; long intra_error; } FIRSTPASS_DATA; typedef struct { FIRSTPASS_DATA fp_data; } TileDataEnc; TileDataEnc accumulate_fp_mb_row_stat_this_tile; void vp9_first_pass_encode_tile_mb_row(FIRSTPASS_DATA *fp_acc_data) { int mb_col_end = vp9_first_pass_encode_tile_mb_row_tile_data_0_0; for (; mb_col_end;) { vp9_encode_sby_pass1(); if (vp9_first_pass_encode_tile_mb_row_cpi_0) { FIRSTPASS_DATA __trans_tmp_1 = *fp_acc_data; accumulate_fp_mb_row_stat_this_tile.fp_data.coded_error += accumulate_fp_mb_row_stat_this_tile.fp_data.sr_coded_error += __trans_tmp_1.sr_coded_error; accumulate_fp_mb_row_stat_this_tile.fp_data.frame_noise_energy += __trans_tmp_1.frame_noise_energy; accumulate_fp_mb_row_stat_this_tile.fp_data.intra_error += __trans_tmp_1.intra_error; } } } foreach_transformed_block_visitor vp9_foreach_transformed_block_in_plane_visit; void vp9_foreach_transformed_block_in_plane(void *arg) { int c, max_blocks_wide = num_4x4_blocks_wide_lookup; for (; num_4x4_blocks_high_lookup;) { c = 0; for (; c < max_blocks_wide; c += vp9_foreach_transformed_block_in_plane_xd_0_0_0) vp9_foreach_transformed_block_in_plane_visit(arg); } } void vp9_encode_sby_pass1() { vp9_foreach_transformed_block_in_plane(&vp9_encode_sby_pass1_x); }