ROL, ROR, LSHL, ASHR, LSHR in VectorOperators.java were declared with VO_SHIFT 
but missing VO_NOFP, allowing them to pass the opCode() guard on floating-point 
vectors (DoubleVector, FloatVector).

This bug fix patch adds VO_NOFP to all five declarations.

As a result, C2 only compiles the hot code path comprising of opCode() check, 
sees the illegalOperation throw an exception, cold path comprising of 
VectorSupport.binaryOp intrinsic not compiled and thus flow never reaches 
vop2ideal() which generates a fatal error if shift class operation is performed 
over floating point type

Please review and share your feedback.

Best Regards,
Jatin

-------------

Commit messages:
 - 8381579: C2: "fatal error: LROTATE: double" when using VectorAPI

Changes: https://git.openjdk.org/jdk/pull/30642/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=30642&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8381579
  Stats: 168 lines in 2 files changed: 163 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/30642.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30642/head:pull/30642

PR: https://git.openjdk.org/jdk/pull/30642

Reply via email to