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

[lworld] C2's superword optimization should vectorize flat inline type array accesses

    Details

      Description

      The loops in testFill and testCopy are not vectorized if MyValue contains more than one field:

      public class Test {
          static inline class MyValue {
              int x = 42;
              int y = 42;
          }

          public static void testFill(MyValue[] array) {
              for (int i = 0; i < array.length; ++i) {
                  array[i] = new MyValue();
              }
          }
          
          public static void testCopy(MyValue[] array1, MyValue[] array2) {
              for (int i = 0; i < array1.length; ++i) {
                  array1[i] = array2[i];
              }
          }

          public static void main(String[] args) {
              MyValue[] array = new MyValue[100];
              for (int i = 0; i < 100_000; ++i) {
                  testFill(array);
                  testCopy(array, array);
              }
          }
      }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              thartmann Tobias Hartmann
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: