Relates :
|
The pipeline class for several instructions is not set correctly and this affects the C2 instruction scheduling. Examples: 13398 instruct MoveF2I_reg_reg(iRegINoSp dst, vRegF src) %{ 13399 13400 match(Set dst (MoveF2I src)); 13401 13402 effect(DEF dst, USE src); 13403 13404 ins_cost(INSN_COST); 13405 13406 format %{ "fmovs $dst, $src\t# MoveF2I_reg_reg" %} 13407 13408 ins_encode %{ 13409 __ fmovs($dst$$Register, as_FloatRegister($src$$reg)); 13410 %} 13411 13412 ins_pipe(pipe_class_memory); // Should be "fp_f2i" 13413 13414 %} 16759 instruct vsll2L_imm(vecX dst, vecX src, immI shift) %{ 16760 predicate(n->as_Vector()->length() == 2); 16761 match(Set dst (LShiftVL src shift)); 16762 ins_cost(INSN_COST); 16763 format %{ "shl $dst, $src, $shift\t# vector (2D)" %} 16764 ins_encode %{ 16765 __ shl(as_FloatRegister($dst$$reg), __ T2D, 16766 as_FloatRegister($src$$reg), 16767 (int)$shift$$constant & 63); 16768 %} 16769 ins_pipe(vshift128); // Should be "vshift128_imm" 16770 %}