On Thu, Mar 19, 2015 at 2:45 PM, Kyrill Tkachov wrote: > As pointed out by James Greenhalgh offline the correct thing would have been > to do an > emit_move_insn to let the backend expanders do the right thing (especially > in the concerned > testcase gcc.c-torture/execute/pr65427.c that uses 256-bit vectors that arm > doesn't support > natively).
This is supposed to be caught by want_to_gcse_p() via can_assign_to_reg_without_clobbers_p(). How does your expression get past that barrier? The gcc_unreachable() is there because all the code in gcse.c assumes it is OK to emit a SET-insn without going through emit_move_insn(). Ciao! Steven