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

aarch64: some more integer rotate instructions are never emitted

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Introduced In Version:
      9
    • Resolved In Build:
      b126
    • CPU:
      aarch64
    • OS:
      linux

      Backports

        Description

            The left rotate instructions have the same issue with https://bugs.openjdk.java.net/browse/JDK-8154537.

            (src << shift) | (src >>> -shift) with src an int have some support in the aarch64.ad ad file: rolI_rReg_Var_C_32 and rolI_rReg_Var_C0, but their definitions is broken and never match any ideal graph subtree.

            Simpe test case:
        import java.lang.Integer.*;

        public class test {
          public static int foo (int x) {
            return Integer.rotateLeft(x, 1);
          }

          public static void main(String[] args) {
            int x = 0x1234;

            for (int i = 0; i < 50000; i++) {
              x = foo(x);
            }
          }
        }

            before optimizing:
          0x0000007f74d13454: neg w11, w2
          0x0000007f74d13458: lsr w12, w1, w11
          0x0000007f74d1345c: lsl w10, w1, w2
          0x0000007f74d13460: orr w0, w10, w12 ;*ior {reexecute=0 rethrow=0 return_oop=0}
                                                        ; - java.lang.Integer::rotateLeft@7 (line 1751)
        after optimizing:
          0x0000007f6cd135d4: neg w8, w2
          0x0000007f6cd135d8: ror w0, w1, w8 ;*ior {reexecute=0 rethrow=0 return_oop=0}
                                                        ; - java.lang.Integer::rotateLeft@7 (line 1751)

          Attachments

            Issue Links

              Activity

                People

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

                  Dates

                  Created:
                  Updated:
                  Resolved: