JDK-8150229 : aarch64: pipeline class for several instructions is not set correctly
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: aarch64
  • Submitted: 2016-02-19
  • Updated: 2021-02-01
  • Resolved: 2016-03-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9 Other
9 b110Fixed openjdk8u292Fixed
Related Reports
Relates :  
Description
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 %}