Intel created a patch to intrinsify Integer/Long.rotateX APIs [1]. New IR nodes are introduced, we can do it in AArch64.
Considering GVN folds relevant operation patterns into a single Rotate node, the final code[3] removes intrinsics.
[1] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/038963.html
[2] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/039048.html
[3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-August/039324.html
Considering GVN folds relevant operation patterns into a single Rotate node, the final code[3] removes intrinsics.
[1] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/038963.html
[2] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/039048.html
[3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-August/039324.html
- relates to
-
JDK-8256478 C2 compilation fails with assert(t1->isa_long()) failed: Type must be a long
-
- Closed
-
-
JDK-8256438 AArch64: Implement match rules with ROR shift register value
-
- Resolved
-
-
JDK-8256823 C2 compilation fails with "assert(isShiftCount(imm8 >> 1)) failed: illegal shift count"
-
- Closed
-