https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98549
--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> --- There's a reproducer without a warning if you want: $ cat pr98549-2.C extern "C" void *memcpy(void *, const void *, unsigned long); inline void copy_mem(unsigned char *out, unsigned char *in, long n) { memcpy(out, in, n); } template <typename T> void typecast_copy(unsigned char out[], T in, long N) { memcpy(out, in, sizeof(T) * N); } template <typename T> void typecast_copy(T out, unsigned char in[], long N) { memcpy(out, in, sizeof(T) * N); } unsigned char *xor_buf_in; class BlockCipher { public: void encrypt(unsigned char[]); } * compress_n___trans_tmp_2; class GOST_34_11 { void compress_n(); BlockCipher m_cipher; }; long compress_n_blocks; void GOST_34_11::compress_n() { for (long i; i != compress_n_blocks; ++i) { unsigned char S[32], S2[32]; char S_1; m_cipher.encrypt(S); S2[13] = S_1; long x[4], y[4]; typecast_copy(x, S2, 4); x[0] ^= y[0]; x[1] ^= y[1]; x[2] ^= x[3]; typecast_copy(S, x, 4); S2[0] = S[4] ^ S[6] ^ 4 ^ S[30]; copy_mem(S, S + 2, 30); S[30] = S2[0]; { long x[4]; typecast_copy(x, S, 4); typecast_copy(y, xor_buf_in, 4); x[0] ^= y[0]; typecast_copy(S, x, 4); } S2[4] = S[6]; memcpy(compress_n___trans_tmp_2, S2, 32); } } $ ~/BIG/bin/ppc64le/dev/shm/buildbot/install/gcc/bin/ppc64le-linux-gnu-gcc -c -O3 -fPIC -fstack-protector pr98549-2.C during RTL pass: reload pr98549-2.C: In member function ‘void GOST_34_11::compress_n()’: pr98549-2.C:46:1: internal compiler error: in rs6000_emit_le_vsx_store, at config/rs6000/rs6000.c:9938 46 | } | ^ 0x606cd2 rs6000_emit_le_vsx_store(rtx_def*, rtx_def*, machine_mode) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/config/rs6000/rs6000.c:9938 0x12579e7 gen_movv2di(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/config/rs6000/vector.md:155 0x99a777 rtx_insn* insn_gen_fn::operator()<rtx_def*, rtx_def*>(rtx_def*, rtx_def*) const /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/recog.h:407 0x99a777 emit_move_insn_1(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/expr.c:3766 0x99abac emit_move_insn(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/expr.c:3936 0xb16bd6 lra_emit_move(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/lra.c:502 0xb29ed3 curr_insn_transform /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/lra-constraints.c:4547 0xb2aff5 lra_constraints(bool) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/lra-constraints.c:5138 0xb19182 lra(_IO_FILE*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/lra.c:2332 0xad65c9 do_reload /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/ira.c:5811 0xad65c9 execute /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/ira.c:5997 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.