diff --git a/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitServiceLoaderTest.java b/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitServiceLoaderTest.java
index e5aa0e5..c6f8ab5 100644
--- a/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitServiceLoaderTest.java
+++ b/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitServiceLoaderTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.dexsplitter;
 
-import static com.android.tools.r8.rewrite.ServiceLoaderRewritingTest.getServiceLoaderLoads;
+import static com.android.tools.r8.optimize.serviceloader.ServiceLoaderRewritingTest.getServiceLoaderLoads;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.StringContains.containsString;
diff --git a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassTest.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassTest.java
index 5df5fe4..6e78fc6 100644
--- a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite.serviceloaders;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
 import static org.hamcrest.CoreMatchers.containsString;
@@ -131,11 +131,11 @@
 
     static Class<?> getServiceClass() throws ClassNotFoundException {
       // Get the Service class without accessing it directly. Accessing it directly would cause a
-      // compilation error due the the class being absent. This can be avoided by adding -dontwarn,
+      // compilation error due to the class being absent. This can be avoided by adding -dontwarn,
       // but then R8 don't report a warning for the incorrect resource in META-INF/services, which
       // this is trying to test.
       return Class.forName(
-          "com.android.tools.r8.rewrite.serviceloaders.MissingServiceClassTest$Service");
+          "com.android.tools.r8.optimize.serviceloader.MissingServiceClassTest$Service");
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassWithFeatureTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassWithFeatureTest.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassWithFeatureTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassWithFeatureTest.java
index ffd8600..30c0a11 100644
--- a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceClassWithFeatureTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceClassWithFeatureTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite.serviceloaders;
+package com.android.tools.r8.optimize.serviceloader;
 
 import com.android.tools.r8.DataEntryResource;
 import com.android.tools.r8.TestBase;
diff --git a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassTest.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassTest.java
index f22742c..3ce012a 100644
--- a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite.serviceloaders;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassWithFeatureTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassWithFeatureTest.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassWithFeatureTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassWithFeatureTest.java
index b510cb3..54a4887 100644
--- a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/MissingServiceImplementationClassWithFeatureTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/MissingServiceImplementationClassWithFeatureTest.java
@@ -1,9 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite.serviceloaders;
-
+package com.android.tools.r8.optimize.serviceloader;
 
 import com.android.tools.r8.DataEntryResource;
 import com.android.tools.r8.TestBase;
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderClassLoaderRewritingTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderClassLoaderRewritingTest.java
similarity index 96%
rename from src/test/java/com/android/tools/r8/rewrite/ServiceLoaderClassLoaderRewritingTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderClassLoaderRewritingTest.java
index 7f9e0cd..3419da6 100644
--- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderClassLoaderRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderClassLoaderRewritingTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.utils.codeinspector.CodeMatchers.invokesMethodWithName;
 import static junit.framework.TestCase.assertNull;
diff --git a/src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderDesugaredLibraryTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderDesugaredLibraryTest.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderDesugaredLibraryTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderDesugaredLibraryTest.java
index 41aed43..25ebee9 100644
--- a/src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderDesugaredLibraryTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderDesugaredLibraryTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.shaking.serviceloader;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8SHRINK_TR;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.R8_L8SHRINK_TR;
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsSameMethodTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsSameMethodTest.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsSameMethodTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsSameMethodTest.java
index f24ea60..2f4b533 100644
--- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsSameMethodTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsSameMethodTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.utils.codeinspector.CodeMatchers.invokesMethodWithName;
 import static junit.framework.TestCase.assertEquals;
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsTest.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsTest.java
index 28ccb42..bd37177 100644
--- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderMultipleCallsTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleCallsTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertNull;
diff --git a/src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderMultipleTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleTest.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderMultipleTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleTest.java
index c3d3efb..99165f5 100644
--- a/src/test/java/com/android/tools/r8/shaking/serviceloader/ServiceLoaderMultipleTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderMultipleTest.java
@@ -1,9 +1,8 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.shaking.serviceloader;
-
+package com.android.tools.r8.optimize.serviceloader;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingLineSeparatorTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingLineSeparatorTest.java
similarity index 83%
rename from src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingLineSeparatorTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingLineSeparatorTest.java
index 322224e..c016b00 100644
--- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingLineSeparatorTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingLineSeparatorTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertNull;
@@ -13,10 +13,6 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.rewrite.ServiceLoaderRewritingTest.MainRunner;
-import com.android.tools.r8.rewrite.ServiceLoaderRewritingTest.Service;
-import com.android.tools.r8.rewrite.ServiceLoaderRewritingTest.ServiceImpl;
-import com.android.tools.r8.rewrite.ServiceLoaderRewritingTest.ServiceImpl2;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -74,20 +70,20 @@
     Path path = temp.newFile("out.zip").toPath();
     testForR8(parameters.getBackend())
         .addInnerClasses(ServiceLoaderRewritingTest.class)
-        .addKeepMainRule(MainRunner.class)
+        .addKeepMainRule(ServiceLoaderRewritingTest.MainRunner.class)
         .setMinApi(parameters)
         .addDataEntryResources(
             DataEntryResource.fromBytes(
                 StringUtils.join(
                         lineSeparator.getSeparator(),
-                        ServiceImpl.class.getTypeName(),
-                        ServiceImpl2.class.getTypeName())
+                        ServiceLoaderRewritingTest.ServiceImpl.class.getTypeName(),
+                        ServiceLoaderRewritingTest.ServiceImpl2.class.getTypeName())
                     .getBytes(),
-                "META-INF/services/" + Service.class.getTypeName(),
+                "META-INF/services/" + ServiceLoaderRewritingTest.Service.class.getTypeName(),
                 Origin.unknown()))
         .compile()
         .writeToZip(path)
-        .run(parameters.getRuntime(), MainRunner.class)
+        .run(parameters.getRuntime(), ServiceLoaderRewritingTest.MainRunner.class)
         .assertSuccessWithOutput(EXPECTED_OUTPUT + StringUtils.lines("Hello World 2!"))
         .inspect(
             inspector -> {
@@ -101,7 +97,7 @@
   }
 
   private static long getServiceLoaderLoads(CodeInspector inspector) {
-    ClassSubject classSubject = inspector.clazz(MainRunner.class);
+    ClassSubject classSubject = inspector.clazz(ServiceLoaderRewritingTest.MainRunner.class);
     assertTrue(classSubject.isPresent());
     return classSubject.allMethods().stream()
         .mapToLong(
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
index ae1e517..6d56ac9 100644
--- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.TestCase.assertEquals;
diff --git a/src/test/java/com/android/tools/r8/shaking/ServiceLoaderTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderTest.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/shaking/ServiceLoaderTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderTest.java
index be04fba..f8a8952 100644
--- a/src/test/java/com/android/tools/r8/shaking/ServiceLoaderTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.shaking;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.references.Reference.classFromClass;
 import static com.android.tools.r8.references.Reference.methodFromMethod;
diff --git a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/ServiceWithoutResourceFileAtCompileTimeTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceWithoutResourceFileAtCompileTimeTest.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/rewrite/serviceloaders/ServiceWithoutResourceFileAtCompileTimeTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceWithoutResourceFileAtCompileTimeTest.java
index e72624d..4bbf11b 100644
--- a/src/test/java/com/android/tools/r8/rewrite/serviceloaders/ServiceWithoutResourceFileAtCompileTimeTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceWithoutResourceFileAtCompileTimeTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.rewrite.serviceloaders;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/src/test/java/com/android/tools/r8/shaking/VerticalClassMergingServiceLoaderTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/VerticalClassMergingServiceLoaderTest.java
similarity index 95%
rename from src/test/java/com/android/tools/r8/shaking/VerticalClassMergingServiceLoaderTest.java
rename to src/test/java/com/android/tools/r8/optimize/serviceloader/VerticalClassMergingServiceLoaderTest.java
index 6579fc3..7784452 100644
--- a/src/test/java/com/android/tools/r8/shaking/VerticalClassMergingServiceLoaderTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/VerticalClassMergingServiceLoaderTest.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.shaking;
+package com.android.tools.r8.optimize.serviceloader;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.MatcherAssert.assertThat;
