Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8150229

aarch64: pipeline class for several instructions is not set correctly

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • None
    • hotspot
    • None
    • b110
    • aarch64
    • linux

        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 %}

              fyang Fei Yang
              fyang Fei Yang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: