https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116274

--- Comment #5 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
For non-avx case, looks like it hits here

  748  /* Special case TImode to 128-bit vector conversions via V2DI.  */       
  749  if (VECTOR_MODE_P (mode)                                                 
  750      && GET_MODE_SIZE (mode) == 16                                        
  751      && SUBREG_P (op1)                                                    
  752      && GET_MODE (SUBREG_REG (op1)) == TImode                             
  753      && TARGET_64BIT && TARGET_SSE                                        
  754      && can_create_pseudo_p ())                                           
  755    {                                                                      
  756      rtx tmp = gen_reg_rtx (V2DImode);                                    
  757      rtx lo = gen_reg_rtx (DImode);                                       
  758      rtx hi = gen_reg_rtx (DImode);                                       
  759      emit_move_insn (lo, gen_lowpart (DImode, SUBREG_REG (op1)));         
  760      emit_move_insn (hi, gen_highpart (DImode, SUBREG_REG (op1)));        
  761      emit_insn (gen_vec_concatv2di (tmp, lo, hi));                        
  762      emit_move_insn (op0, gen_lowpart (mode, tmp));                       
  763      return;                                                              
  764    }

Reply via email to