------- Comment #5 from pinskia at gcc dot gnu dot org 2010-06-16 20:46 ------- (In reply to comment #4) > You can cast 256bit to 128bit to get the lower 128bit.
This way can be represented using vec_select. And then later on using a split (after reload) turned into a move. > You can also cast 128bit to 256bit with upper 128bit undefined. Still use an UNSPEC but use define_insn_and_split which does a splitting (after reload) to turn it into a move. Since it is a move after all (the registers are overlapping). This should improve code generation. Also penalize the non matching 0 operand case in both insn. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44551