about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-04-21 21:08:03 +0000
committerbors <bors@rust-lang.org>2024-04-21 21:08:03 +0000
commitfb898629a26e4acec59c928ce3ec00a62675d1cc (patch)
treeba73dfeeabaa003efb79a37a8cf7ae0de48e6cb5 /tests
parent1b3fba066c21e7c3471fca710783fc1e6546a1ca (diff)
parent3315bf961d4d7dfafe3f8b01f892317e4f746861 (diff)
downloadrust-fb898629a26e4acec59c928ce3ec00a62675d1cc.tar.gz
rust-fb898629a26e4acec59c928ce3ec00a62675d1cc.zip
Auto merge of #124241 - matthiaskrgr:rollup-xhu90xr, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #123840 (Add an intrinsic for `ptr::from_raw_parts(_mut)`)
 - #124224 (cleanup: unnecessary clone during lower generics args)
 - #124229 (Add gnullvm targets to manifest)
 - #124231 (remove from reviewers)
 - #124235 (Move some tests)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'tests')
-rw-r--r--tests/mir-opt/instsimplify/casts.rs9
-rw-r--r--tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff95
-rw-r--r--tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff95
-rw-r--r--tests/mir-opt/lower_intrinsics.rs10
-rw-r--r--tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-abort.mir44
-rw-r--r--tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-unwind.mir44
-rw-r--r--tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-abort.mir30
-rw-r--r--tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-unwind.mir30
-rw-r--r--tests/mir-opt/pre-codegen/ptr_offset.rs16
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.rs9
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-abort.mir52
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-unwind.mir52
-rw-r--r--tests/mir-opt/pre-codegen/vec_deref.rs13
-rw-r--r--tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir72
-rw-r--r--tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir72
-rw-r--r--tests/ui/associated-types/issue-19129-1.rs (renamed from tests/ui/issues/issue-19129-1.rs)0
-rw-r--r--tests/ui/associated-types/issue-19129-2.rs (renamed from tests/ui/issues/issue-19129-2.rs)0
-rw-r--r--tests/ui/associated-types/issue-20763-1.rs (renamed from tests/ui/issues/issue-20763-1.rs)0
-rw-r--r--tests/ui/associated-types/issue-20763-2.rs (renamed from tests/ui/issues/issue-20763-2.rs)0
-rw-r--r--tests/ui/binding/issue-40402-1.rs (renamed from tests/ui/issues/issue-40402-ref-hints/issue-40402-1.rs)0
-rw-r--r--tests/ui/binding/issue-40402-1.stderr (renamed from tests/ui/issues/issue-40402-ref-hints/issue-40402-1.stderr)0
-rw-r--r--tests/ui/binding/issue-40402-2.rs (renamed from tests/ui/issues/issue-40402-ref-hints/issue-40402-2.rs)0
-rw-r--r--tests/ui/binding/issue-40402-2.stderr (renamed from tests/ui/issues/issue-40402-ref-hints/issue-40402-2.stderr)0
-rw-r--r--tests/ui/closures/issue-22864-1.rs (renamed from tests/ui/issues/issue-22864-1.rs)0
-rw-r--r--tests/ui/closures/issue-22864-2.rs (renamed from tests/ui/issues/issue-22864-2.rs)0
-rw-r--r--tests/ui/closures/issue-5239-1.rs (renamed from tests/ui/issues/issue-5239-1.rs)0
-rw-r--r--tests/ui/closures/issue-5239-1.stderr (renamed from tests/ui/issues/issue-5239-1.stderr)0
-rw-r--r--tests/ui/closures/issue-5239-2.rs (renamed from tests/ui/issues/issue-5239-2.rs)0
-rw-r--r--tests/ui/coercion/issue-32122-1.fixed (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.fixed)0
-rw-r--r--tests/ui/coercion/issue-32122-1.rs (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.rs)0
-rw-r--r--tests/ui/coercion/issue-32122-1.stderr (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.stderr)0
-rw-r--r--tests/ui/coercion/issue-32122-2.fixed (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.fixed)0
-rw-r--r--tests/ui/coercion/issue-32122-2.rs (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.rs)0
-rw-r--r--tests/ui/coercion/issue-32122-2.stderr (renamed from tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.stderr)0
-rw-r--r--tests/ui/consts/issue-19244-1.rs (renamed from tests/ui/issues/issue-19244-1.rs)0
-rw-r--r--tests/ui/consts/issue-19244-1.stderr (renamed from tests/ui/issues/issue-19244-1.stderr)0
-rw-r--r--tests/ui/consts/issue-19244-2.rs (renamed from tests/ui/issues/issue-19244-2.rs)0
-rw-r--r--tests/ui/consts/issue-19244-2.stderr (renamed from tests/ui/issues/issue-19244-2.stderr)0
-rw-r--r--tests/ui/deref-patterns/issue-71676-1.fixed (renamed from tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.fixed)0
-rw-r--r--tests/ui/deref-patterns/issue-71676-1.rs (renamed from tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.rs)0
-rw-r--r--tests/ui/deref-patterns/issue-71676-1.stderr (renamed from tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.stderr)0
-rw-r--r--tests/ui/deref-patterns/issue-71676-2.rs (renamed from tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.rs)0
-rw-r--r--tests/ui/deref-patterns/issue-71676-2.stderr (renamed from tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.stderr)0
-rw-r--r--tests/ui/enum/auxiliary/issue-19340-1.rs (renamed from tests/ui/issues/auxiliary/issue-19340-1.rs)0
-rw-r--r--tests/ui/enum/issue-19340-1.rs (renamed from tests/ui/issues/issue-19340-1.rs)0
-rw-r--r--tests/ui/enum/issue-19340-2.rs (renamed from tests/ui/issues/issue-19340-2.rs)0
-rw-r--r--tests/ui/enum/issue-23304-1.rs (renamed from tests/ui/issues/issue-23304-1.rs)0
-rw-r--r--tests/ui/enum/issue-23304-2.rs (renamed from tests/ui/issues/issue-23304-2.rs)0
-rw-r--r--tests/ui/expr/issue-22933-1.rs (renamed from tests/ui/issues/issue-22933-1.rs)0
-rw-r--r--tests/ui/expr/issue-22933-2.rs (renamed from tests/ui/issues/issue-22933-2.rs)0
-rw-r--r--tests/ui/expr/issue-22933-2.stderr (renamed from tests/ui/issues/issue-22933-2.stderr)0
-rw-r--r--tests/ui/macros/issue-11692-1.rs (renamed from tests/ui/issues/issue-11692-1.rs)0
-rw-r--r--tests/ui/macros/issue-11692-1.stderr (renamed from tests/ui/issues/issue-11692-1.stderr)0
-rw-r--r--tests/ui/macros/issue-11692-2.rs (renamed from tests/ui/issues/issue-11692-2.rs)0
-rw-r--r--tests/ui/macros/issue-11692-2.stderr (renamed from tests/ui/issues/issue-11692-2.stderr)0
-rw-r--r--tests/ui/nll/issue-57362-1.rs (renamed from tests/ui/issues/issue-57362-1.rs)0
-rw-r--r--tests/ui/nll/issue-57362-1.stderr (renamed from tests/ui/issues/issue-57362-1.stderr)0
-rw-r--r--tests/ui/nll/issue-57362-2.rs (renamed from tests/ui/issues/issue-57362-2.rs)0
-rw-r--r--tests/ui/nll/issue-57362-2.stderr (renamed from tests/ui/issues/issue-57362-2.stderr)0
-rw-r--r--tests/ui/parser/issue-12187-1.rs (renamed from tests/ui/issues/issue-12187-1.rs)0
-rw-r--r--tests/ui/parser/issue-12187-1.stderr (renamed from tests/ui/issues/issue-12187-1.stderr)0
-rw-r--r--tests/ui/parser/issue-12187-2.rs (renamed from tests/ui/issues/issue-12187-2.rs)0
-rw-r--r--tests/ui/parser/issue-12187-2.stderr (renamed from tests/ui/issues/issue-12187-2.stderr)0
-rw-r--r--tests/ui/recursion/issue-23122-1.rs (renamed from tests/ui/issues/issue-23122-1.rs)0
-rw-r--r--tests/ui/recursion/issue-23122-1.stderr (renamed from tests/ui/issues/issue-23122-1.stderr)0
-rw-r--r--tests/ui/recursion/issue-23122-2.rs (renamed from tests/ui/issues/issue-23122-2.rs)0
-rw-r--r--tests/ui/recursion/issue-23122-2.stderr (renamed from tests/ui/issues/issue-23122-2.stderr)0
-rw-r--r--tests/ui/resolve/issue-3214.rs (renamed from tests/ui/issues/issue-3214.rs)0
-rw-r--r--tests/ui/resolve/issue-3214.stderr (renamed from tests/ui/issues/issue-3214.stderr)0
-rw-r--r--tests/ui/type/issue-7607-1.rs (renamed from tests/ui/issues/issue-7607-1.rs)0
-rw-r--r--tests/ui/type/issue-7607-1.stderr (renamed from tests/ui/issues/issue-7607-1.stderr)0
-rw-r--r--tests/ui/type/issue-7607-2.rs (renamed from tests/ui/issues/issue-7607-2.rs)0
72 files changed, 643 insertions, 0 deletions
diff --git a/tests/mir-opt/instsimplify/casts.rs b/tests/mir-opt/instsimplify/casts.rs
index b3bc34af5b7..a7786fa570f 100644
--- a/tests/mir-opt/instsimplify/casts.rs
+++ b/tests/mir-opt/instsimplify/casts.rs
@@ -1,6 +1,7 @@
 //@ test-mir-pass: InstSimplify
 //@ compile-flags: -Zinline-mir
 #![crate_type = "lib"]
+#![feature(core_intrinsics)]
 
 #[inline(always)]
 fn generic_cast<T, U>(x: *const T) -> *const U {
@@ -23,3 +24,11 @@ pub fn roundtrip(x: *const u8) -> *const u8 {
     // CHECK: _2 = move _3 as *const u8 (PointerCoercion(MutToConstPointer));
     x as *mut u8 as *const u8
 }
+
+// EMIT_MIR casts.roundtrip.InstSimplify.diff
+pub fn cast_thin_via_aggregate(x: *const u8) -> *const () {
+    // CHECK-LABEL: fn cast_thin_via_aggregate(
+    // CHECK: _2 = _1;
+    // CHECK: _0 = move _2 as *const () (PtrToPtr);
+    std::intrinsics::aggregate_raw_ptr(x, ())
+}
diff --git a/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff b/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff
new file mode 100644
index 00000000000..02934d4c01e
--- /dev/null
+++ b/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff
@@ -0,0 +1,95 @@
+- // MIR for `make_pointers` before LowerIntrinsics
++ // MIR for `make_pointers` after LowerIntrinsics
+  
+  fn make_pointers(_1: *const u8, _2: *mut (), _3: usize) -> () {
+      debug a => _1;
+      debug b => _2;
+      debug n => _3;
+      let mut _0: ();
+      let _4: *const i32;
+      let mut _5: *const u8;
+      let mut _6: ();
+      let mut _8: *mut ();
+      let mut _9: ();
+      let mut _11: *const u8;
+      let mut _12: usize;
+      let mut _14: *mut ();
+      let mut _15: usize;
+      scope 1 {
+          debug _thin_const => _4;
+          let _7: *mut u8;
+          scope 2 {
+              debug _thin_mut => _7;
+              let _10: *const [u16];
+              scope 3 {
+                  debug _slice_const => _10;
+                  let _13: *mut [u64];
+                  scope 4 {
+                      debug _slice_mut => _13;
+                  }
+              }
+          }
+      }
+  
+      bb0: {
+          StorageLive(_4);
+          StorageLive(_5);
+          _5 = _1;
+          StorageLive(_6);
+          _6 = ();
+-         _4 = aggregate_raw_ptr::<*const i32, *const u8, ()>(move _5, move _6) -> [return: bb1, unwind unreachable];
++         _4 = *const i32 from (move _5, move _6);
++         goto -> bb1;
+      }
+  
+      bb1: {
+          StorageDead(_6);
+          StorageDead(_5);
+          StorageLive(_7);
+          StorageLive(_8);
+          _8 = _2;
+          StorageLive(_9);
+          _9 = ();
+-         _7 = aggregate_raw_ptr::<*mut u8, *mut (), ()>(move _8, move _9) -> [return: bb2, unwind unreachable];
++         _7 = *mut u8 from (move _8, move _9);
++         goto -> bb2;
+      }
+  
+      bb2: {
+          StorageDead(_9);
+          StorageDead(_8);
+          StorageLive(_10);
+          StorageLive(_11);
+          _11 = _1;
+          StorageLive(_12);
+          _12 = _3;
+-         _10 = aggregate_raw_ptr::<*const [u16], *const u8, usize>(move _11, move _12) -> [return: bb3, unwind unreachable];
++         _10 = *const [u16] from (move _11, move _12);
++         goto -> bb3;
+      }
+  
+      bb3: {
+          StorageDead(_12);
+          StorageDead(_11);
+          StorageLive(_13);
+          StorageLive(_14);
+          _14 = _2;
+          StorageLive(_15);
+          _15 = _3;
+-         _13 = aggregate_raw_ptr::<*mut [u64], *mut (), usize>(move _14, move _15) -> [return: bb4, unwind unreachable];
++         _13 = *mut [u64] from (move _14, move _15);
++         goto -> bb4;
+      }
+  
+      bb4: {
+          StorageDead(_15);
+          StorageDead(_14);
+          _0 = const ();
+          StorageDead(_13);
+          StorageDead(_10);
+          StorageDead(_7);
+          StorageDead(_4);
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff b/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff
new file mode 100644
index 00000000000..02934d4c01e
--- /dev/null
+++ b/tests/mir-opt/lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff
@@ -0,0 +1,95 @@
+- // MIR for `make_pointers` before LowerIntrinsics
++ // MIR for `make_pointers` after LowerIntrinsics
+  
+  fn make_pointers(_1: *const u8, _2: *mut (), _3: usize) -> () {
+      debug a => _1;
+      debug b => _2;
+      debug n => _3;
+      let mut _0: ();
+      let _4: *const i32;
+      let mut _5: *const u8;
+      let mut _6: ();
+      let mut _8: *mut ();
+      let mut _9: ();
+      let mut _11: *const u8;
+      let mut _12: usize;
+      let mut _14: *mut ();
+      let mut _15: usize;
+      scope 1 {
+          debug _thin_const => _4;
+          let _7: *mut u8;
+          scope 2 {
+              debug _thin_mut => _7;
+              let _10: *const [u16];
+              scope 3 {
+                  debug _slice_const => _10;
+                  let _13: *mut [u64];
+                  scope 4 {
+                      debug _slice_mut => _13;
+                  }
+              }
+          }
+      }
+  
+      bb0: {
+          StorageLive(_4);
+          StorageLive(_5);
+          _5 = _1;
+          StorageLive(_6);
+          _6 = ();
+-         _4 = aggregate_raw_ptr::<*const i32, *const u8, ()>(move _5, move _6) -> [return: bb1, unwind unreachable];
++         _4 = *const i32 from (move _5, move _6);
++         goto -> bb1;
+      }
+  
+      bb1: {
+          StorageDead(_6);
+          StorageDead(_5);
+          StorageLive(_7);
+          StorageLive(_8);
+          _8 = _2;
+          StorageLive(_9);
+          _9 = ();
+-         _7 = aggregate_raw_ptr::<*mut u8, *mut (), ()>(move _8, move _9) -> [return: bb2, unwind unreachable];
++         _7 = *mut u8 from (move _8, move _9);
++         goto -> bb2;
+      }
+  
+      bb2: {
+          StorageDead(_9);
+          StorageDead(_8);
+          StorageLive(_10);
+          StorageLive(_11);
+          _11 = _1;
+          StorageLive(_12);
+          _12 = _3;
+-         _10 = aggregate_raw_ptr::<*const [u16], *const u8, usize>(move _11, move _12) -> [return: bb3, unwind unreachable];
++         _10 = *const [u16] from (move _11, move _12);
++         goto -> bb3;
+      }
+  
+      bb3: {
+          StorageDead(_12);
+          StorageDead(_11);
+          StorageLive(_13);
+          StorageLive(_14);
+          _14 = _2;
+          StorageLive(_15);
+          _15 = _3;
+-         _13 = aggregate_raw_ptr::<*mut [u64], *mut (), usize>(move _14, move _15) -> [return: bb4, unwind unreachable];
++         _13 = *mut [u64] from (move _14, move _15);
++         goto -> bb4;
+      }
+  
+      bb4: {
+          StorageDead(_15);
+          StorageDead(_14);
+          _0 = const ();
+          StorageDead(_13);
+          StorageDead(_10);
+          StorageDead(_7);
+          StorageDead(_4);
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/lower_intrinsics.rs b/tests/mir-opt/lower_intrinsics.rs
index 693425c0041..12e526ab074 100644
--- a/tests/mir-opt/lower_intrinsics.rs
+++ b/tests/mir-opt/lower_intrinsics.rs
@@ -248,3 +248,13 @@ pub fn three_way_compare_signed(a: i16, b: i16) {
 pub fn three_way_compare_unsigned(a: u32, b: u32) {
     let _x = core::intrinsics::three_way_compare(a, b);
 }
+
+// EMIT_MIR lower_intrinsics.make_pointers.LowerIntrinsics.diff
+pub fn make_pointers(a: *const u8, b: *mut (), n: usize) {
+    use std::intrinsics::aggregate_raw_ptr;
+
+    let _thin_const: *const i32 = aggregate_raw_ptr(a, ());
+    let _thin_mut: *mut u8 = aggregate_raw_ptr(b, ());
+    let _slice_const: *const [u16] = aggregate_raw_ptr(a, n);
+    let _slice_mut: *mut [u64] = aggregate_raw_ptr(b, n);
+}
diff --git a/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-abort.mir
new file mode 100644
index 00000000000..db0c84bd560
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-abort.mir
@@ -0,0 +1,44 @@
+// MIR for `demo_byte_add_fat` after PreCodegen
+
+fn demo_byte_add_fat(_1: *const [u32], _2: usize) -> *const [u32] {
+    debug p => _1;
+    debug n => _2;
+    let mut _0: *const [u32];
+    scope 1 (inlined std::ptr::const_ptr::<impl *const [u32]>::byte_add) {
+        let mut _3: *const u8;
+        let mut _4: *const u8;
+        scope 2 (inlined std::ptr::const_ptr::<impl *const [u32]>::cast::<u8>) {
+        }
+        scope 3 (inlined std::ptr::const_ptr::<impl *const u8>::add) {
+        }
+        scope 4 (inlined std::ptr::const_ptr::<impl *const u8>::with_metadata_of::<[u32]>) {
+            let mut _5: *const ();
+            let mut _7: usize;
+            scope 5 (inlined std::ptr::metadata::<[u32]>) {
+                let mut _6: std::ptr::metadata::PtrRepr<[u32]>;
+            }
+            scope 6 (inlined std::ptr::from_raw_parts::<[u32]>) {
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_4);
+        StorageLive(_3);
+        _3 = _1 as *const u8 (PtrToPtr);
+        _4 = Offset(_3, _2);
+        StorageDead(_3);
+        StorageLive(_5);
+        _5 = _4 as *const () (PtrToPtr);
+        StorageLive(_7);
+        StorageLive(_6);
+        _6 = std::ptr::metadata::PtrRepr::<[u32]> { const_ptr: _1 };
+        _7 = ((_6.2: std::ptr::metadata::PtrComponents<[u32]>).1: usize);
+        StorageDead(_6);
+        _0 = *const [u32] from (_5, _7);
+        StorageDead(_7);
+        StorageDead(_5);
+        StorageDead(_4);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-unwind.mir
new file mode 100644
index 00000000000..db0c84bd560
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-unwind.mir
@@ -0,0 +1,44 @@
+// MIR for `demo_byte_add_fat` after PreCodegen
+
+fn demo_byte_add_fat(_1: *const [u32], _2: usize) -> *const [u32] {
+    debug p => _1;
+    debug n => _2;
+    let mut _0: *const [u32];
+    scope 1 (inlined std::ptr::const_ptr::<impl *const [u32]>::byte_add) {
+        let mut _3: *const u8;
+        let mut _4: *const u8;
+        scope 2 (inlined std::ptr::const_ptr::<impl *const [u32]>::cast::<u8>) {
+        }
+        scope 3 (inlined std::ptr::const_ptr::<impl *const u8>::add) {
+        }
+        scope 4 (inlined std::ptr::const_ptr::<impl *const u8>::with_metadata_of::<[u32]>) {
+            let mut _5: *const ();
+            let mut _7: usize;
+            scope 5 (inlined std::ptr::metadata::<[u32]>) {
+                let mut _6: std::ptr::metadata::PtrRepr<[u32]>;
+            }
+            scope 6 (inlined std::ptr::from_raw_parts::<[u32]>) {
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_4);
+        StorageLive(_3);
+        _3 = _1 as *const u8 (PtrToPtr);
+        _4 = Offset(_3, _2);
+        StorageDead(_3);
+        StorageLive(_5);
+        _5 = _4 as *const () (PtrToPtr);
+        StorageLive(_7);
+        StorageLive(_6);
+        _6 = std::ptr::metadata::PtrRepr::<[u32]> { const_ptr: _1 };
+        _7 = ((_6.2: std::ptr::metadata::PtrComponents<[u32]>).1: usize);
+        StorageDead(_6);
+        _0 = *const [u32] from (_5, _7);
+        StorageDead(_7);
+        StorageDead(_5);
+        StorageDead(_4);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-abort.mir
new file mode 100644
index 00000000000..766bd29ef41
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-abort.mir
@@ -0,0 +1,30 @@
+// MIR for `demo_byte_add_thin` after PreCodegen
+
+fn demo_byte_add_thin(_1: *const u32, _2: usize) -> *const u32 {
+    debug p => _1;
+    debug n => _2;
+    let mut _0: *const u32;
+    scope 1 (inlined std::ptr::const_ptr::<impl *const u32>::byte_add) {
+        let mut _3: *const u8;
+        let mut _4: *const u8;
+        scope 2 (inlined std::ptr::const_ptr::<impl *const u32>::cast::<u8>) {
+        }
+        scope 3 (inlined std::ptr::const_ptr::<impl *const u8>::add) {
+        }
+        scope 4 (inlined std::ptr::const_ptr::<impl *const u8>::with_metadata_of::<u32>) {
+            scope 5 (inlined std::ptr::metadata::<u32>) {
+            }
+            scope 6 (inlined std::ptr::from_raw_parts::<u32>) {
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_3);
+        _3 = _1 as *const u8 (PtrToPtr);
+        _4 = Offset(_3, _2);
+        StorageDead(_3);
+        _0 = _4 as *const u32 (PtrToPtr);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-unwind.mir
new file mode 100644
index 00000000000..766bd29ef41
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-unwind.mir
@@ -0,0 +1,30 @@
+// MIR for `demo_byte_add_thin` after PreCodegen
+
+fn demo_byte_add_thin(_1: *const u32, _2: usize) -> *const u32 {
+    debug p => _1;
+    debug n => _2;
+    let mut _0: *const u32;
+    scope 1 (inlined std::ptr::const_ptr::<impl *const u32>::byte_add) {
+        let mut _3: *const u8;
+        let mut _4: *const u8;
+        scope 2 (inlined std::ptr::const_ptr::<impl *const u32>::cast::<u8>) {
+        }
+        scope 3 (inlined std::ptr::const_ptr::<impl *const u8>::add) {
+        }
+        scope 4 (inlined std::ptr::const_ptr::<impl *const u8>::with_metadata_of::<u32>) {
+            scope 5 (inlined std::ptr::metadata::<u32>) {
+            }
+            scope 6 (inlined std::ptr::from_raw_parts::<u32>) {
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_3);
+        _3 = _1 as *const u8 (PtrToPtr);
+        _4 = Offset(_3, _2);
+        StorageDead(_3);
+        _0 = _4 as *const u32 (PtrToPtr);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/ptr_offset.rs b/tests/mir-opt/pre-codegen/ptr_offset.rs
new file mode 100644
index 00000000000..88ee00296a0
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/ptr_offset.rs
@@ -0,0 +1,16 @@
+// skip-filecheck
+//@ compile-flags: -O -C debuginfo=0 -Zmir-opt-level=2 -Zinline-mir
+//@ ignore-debug: precondition checks are under cfg(debug_assertions)
+// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
+
+#![crate_type = "lib"]
+
+// EMIT_MIR ptr_offset.demo_byte_add_thin.PreCodegen.after.mir
+pub unsafe fn demo_byte_add_thin(p: *const u32, n: usize) -> *const u32 {
+    p.byte_add(n)
+}
+
+// EMIT_MIR ptr_offset.demo_byte_add_fat.PreCodegen.after.mir
+pub unsafe fn demo_byte_add_fat(p: *const [u32], n: usize) -> *const [u32] {
+    p.byte_add(n)
+}
diff --git a/tests/mir-opt/pre-codegen/slice_index.rs b/tests/mir-opt/pre-codegen/slice_index.rs
index c9dd72d8be2..04bbbff57b3 100644
--- a/tests/mir-opt/pre-codegen/slice_index.rs
+++ b/tests/mir-opt/pre-codegen/slice_index.rs
@@ -3,6 +3,7 @@
 // EMIT_MIR_FOR_EACH_PANIC_STRATEGY
 
 #![crate_type = "lib"]
+#![feature(slice_ptr_get)]
 
 use std::ops::Range;
 
@@ -25,3 +26,11 @@ pub fn slice_index_range(slice: &[u32], index: Range<usize>) -> &[u32] {
 pub unsafe fn slice_get_unchecked_mut_range(slice: &mut [u32], index: Range<usize>) -> &mut [u32] {
     slice.get_unchecked_mut(index)
 }
+
+// EMIT_MIR slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.mir
+pub unsafe fn slice_ptr_get_unchecked_range(
+    slice: *const [u32],
+    index: Range<usize>,
+) -> *const [u32] {
+    slice.get_unchecked(index)
+}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-abort.mir
new file mode 100644
index 00000000000..018ff6c357d
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-abort.mir
@@ -0,0 +1,52 @@
+// MIR for `slice_ptr_get_unchecked_range` after PreCodegen
+
+fn slice_ptr_get_unchecked_range(_1: *const [u32], _2: std::ops::Range<usize>) -> *const [u32] {
+    debug slice => _1;
+    debug index => _2;
+    let mut _0: *const [u32];
+    let mut _3: usize;
+    let mut _4: usize;
+    scope 1 (inlined std::ptr::const_ptr::<impl *const [u32]>::get_unchecked::<std::ops::Range<usize>>) {
+        scope 2 (inlined <std::ops::Range<usize> as SliceIndex<[u32]>>::get_unchecked) {
+            let _5: usize;
+            let mut _6: *const u32;
+            let mut _7: *const u32;
+            scope 3 {
+                scope 6 (inlined std::ptr::const_ptr::<impl *const [u32]>::as_ptr) {
+                }
+                scope 7 (inlined std::ptr::const_ptr::<impl *const u32>::add) {
+                }
+                scope 8 (inlined slice_from_raw_parts::<u32>) {
+                    let mut _8: *const ();
+                    scope 9 (inlined std::ptr::const_ptr::<impl *const u32>::cast::<()>) {
+                    }
+                    scope 10 (inlined std::ptr::from_raw_parts::<[u32]>) {
+                    }
+                }
+            }
+            scope 4 (inlined std::ptr::const_ptr::<impl *const [u32]>::len) {
+                scope 5 (inlined std::ptr::metadata::<[u32]>) {
+                }
+            }
+        }
+    }
+
+    bb0: {
+        _3 = move (_2.0: usize);
+        _4 = move (_2.1: usize);
+        StorageLive(_5);
+        _5 = SubUnchecked(_4, _3);
+        StorageLive(_7);
+        StorageLive(_6);
+        _6 = _1 as *const u32 (PtrToPtr);
+        _7 = Offset(_6, _3);
+        StorageDead(_6);
+        StorageLive(_8);
+        _8 = _7 as *const () (PtrToPtr);
+        _0 = *const [u32] from (_8, _5);
+        StorageDead(_8);
+        StorageDead(_7);
+        StorageDead(_5);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-unwind.mir
new file mode 100644
index 00000000000..018ff6c357d
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-unwind.mir
@@ -0,0 +1,52 @@
+// MIR for `slice_ptr_get_unchecked_range` after PreCodegen
+
+fn slice_ptr_get_unchecked_range(_1: *const [u32], _2: std::ops::Range<usize>) -> *const [u32] {
+    debug slice => _1;
+    debug index => _2;
+    let mut _0: *const [u32];
+    let mut _3: usize;
+    let mut _4: usize;
+    scope 1 (inlined std::ptr::const_ptr::<impl *const [u32]>::get_unchecked::<std::ops::Range<usize>>) {
+        scope 2 (inlined <std::ops::Range<usize> as SliceIndex<[u32]>>::get_unchecked) {
+            let _5: usize;
+            let mut _6: *const u32;
+            let mut _7: *const u32;
+            scope 3 {
+                scope 6 (inlined std::ptr::const_ptr::<impl *const [u32]>::as_ptr) {
+                }
+                scope 7 (inlined std::ptr::const_ptr::<impl *const u32>::add) {
+                }
+                scope 8 (inlined slice_from_raw_parts::<u32>) {
+                    let mut _8: *const ();
+                    scope 9 (inlined std::ptr::const_ptr::<impl *const u32>::cast::<()>) {
+                    }
+                    scope 10 (inlined std::ptr::from_raw_parts::<[u32]>) {
+                    }
+                }
+            }
+            scope 4 (inlined std::ptr::const_ptr::<impl *const [u32]>::len) {
+                scope 5 (inlined std::ptr::metadata::<[u32]>) {
+                }
+            }
+        }
+    }
+
+    bb0: {
+        _3 = move (_2.0: usize);
+        _4 = move (_2.1: usize);
+        StorageLive(_5);
+        _5 = SubUnchecked(_4, _3);
+        StorageLive(_7);
+        StorageLive(_6);
+        _6 = _1 as *const u32 (PtrToPtr);
+        _7 = Offset(_6, _3);
+        StorageDead(_6);
+        StorageLive(_8);
+        _8 = _7 as *const () (PtrToPtr);
+        _0 = *const [u32] from (_8, _5);
+        StorageDead(_8);
+        StorageDead(_7);
+        StorageDead(_5);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/vec_deref.rs b/tests/mir-opt/pre-codegen/vec_deref.rs
new file mode 100644
index 00000000000..3476e1760c0
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/vec_deref.rs
@@ -0,0 +1,13 @@
+// skip-filecheck
+//@ compile-flags: -O -Zmir-opt-level=2 -Cdebuginfo=2
+// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
+
+#![crate_type = "lib"]
+
+// Added after it stopped inlining in a nightly; see
+// <https://github.com/rust-lang/rust/issues/123174>
+
+// EMIT_MIR vec_deref.vec_deref_to_slice.PreCodegen.after.mir
+pub fn vec_deref_to_slice(v: &Vec<u8>) -> &[u8] {
+    v
+}
diff --git a/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir
new file mode 100644
index 00000000000..18728d543ad
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir
@@ -0,0 +1,72 @@
+// MIR for `vec_deref_to_slice` after PreCodegen
+
+fn vec_deref_to_slice(_1: &Vec<u8>) -> &[u8] {
+    debug v => _1;
+    let mut _0: &[u8];
+    scope 1 (inlined <Vec<u8> as Deref>::deref) {
+        debug self => _1;
+        let mut _4: *const u8;
+        let mut _5: usize;
+        scope 2 (inlined Vec::<u8>::as_ptr) {
+            debug self => _1;
+            let mut _2: &alloc::raw_vec::RawVec<u8>;
+            scope 3 (inlined alloc::raw_vec::RawVec::<u8>::ptr) {
+                debug self => _2;
+                let mut _3: std::ptr::NonNull<u8>;
+                scope 4 (inlined Unique::<u8>::as_ptr) {
+                    debug ((self: Unique<u8>).0: std::ptr::NonNull<u8>) => _3;
+                    debug ((self: Unique<u8>).1: std::marker::PhantomData<u8>) => const PhantomData::<u8>;
+                    scope 5 (inlined NonNull::<u8>::as_ptr) {
+                        debug self => _3;
+                    }
+                }
+            }
+        }
+        scope 6 (inlined std::slice::from_raw_parts::<'_, u8>) {
+            debug data => _4;
+            debug len => _5;
+            let _7: *const [u8];
+            scope 7 (inlined core::ub_checks::check_language_ub) {
+                scope 8 (inlined core::ub_checks::check_language_ub::runtime) {
+                }
+            }
+            scope 9 (inlined std::mem::size_of::<u8>) {
+            }
+            scope 10 (inlined align_of::<u8>) {
+            }
+            scope 11 (inlined slice_from_raw_parts::<u8>) {
+                debug data => _4;
+                debug len => _5;
+                let mut _6: *const ();
+                scope 12 (inlined std::ptr::const_ptr::<impl *const u8>::cast::<()>) {
+                    debug self => _4;
+                }
+                scope 13 (inlined std::ptr::from_raw_parts::<[u8]>) {
+                    debug data_pointer => _6;
+                    debug metadata => _5;
+                }
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_4);
+        StorageLive(_2);
+        _2 = &((*_1).0: alloc::raw_vec::RawVec<u8>);
+        StorageLive(_3);
+        _3 = ((((*_1).0: alloc::raw_vec::RawVec<u8>).0: std::ptr::Unique<u8>).0: std::ptr::NonNull<u8>);
+        _4 = (_3.0: *const u8);
+        StorageDead(_3);
+        StorageDead(_2);
+        StorageLive(_5);
+        _5 = ((*_1).1: usize);
+        StorageLive(_6);
+        _6 = _4 as *const () (PtrToPtr);
+        _7 = *const [u8] from (_6, _5);
+        StorageDead(_6);
+        StorageDead(_5);
+        StorageDead(_4);
+        _0 = &(*_7);
+        return;
+    }
+}
diff --git a/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir
new file mode 100644
index 00000000000..18728d543ad
--- /dev/null
+++ b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir
@@ -0,0 +1,72 @@
+// MIR for `vec_deref_to_slice` after PreCodegen
+
+fn vec_deref_to_slice(_1: &Vec<u8>) -> &[u8] {
+    debug v => _1;
+    let mut _0: &[u8];
+    scope 1 (inlined <Vec<u8> as Deref>::deref) {
+        debug self => _1;
+        let mut _4: *const u8;
+        let mut _5: usize;
+        scope 2 (inlined Vec::<u8>::as_ptr) {
+            debug self => _1;
+            let mut _2: &alloc::raw_vec::RawVec<u8>;
+            scope 3 (inlined alloc::raw_vec::RawVec::<u8>::ptr) {
+                debug self => _2;
+                let mut _3: std::ptr::NonNull<u8>;
+                scope 4 (inlined Unique::<u8>::as_ptr) {
+                    debug ((self: Unique<u8>).0: std::ptr::NonNull<u8>) => _3;
+                    debug ((self: Unique<u8>).1: std::marker::PhantomData<u8>) => const PhantomData::<u8>;
+                    scope 5 (inlined NonNull::<u8>::as_ptr) {
+                        debug self => _3;
+                    }
+                }
+            }
+        }
+        scope 6 (inlined std::slice::from_raw_parts::<'_, u8>) {
+            debug data => _4;
+            debug len => _5;
+            let _7: *const [u8];
+            scope 7 (inlined core::ub_checks::check_language_ub) {
+                scope 8 (inlined core::ub_checks::check_language_ub::runtime) {
+                }
+            }
+            scope 9 (inlined std::mem::size_of::<u8>) {
+            }
+            scope 10 (inlined align_of::<u8>) {
+            }
+            scope 11 (inlined slice_from_raw_parts::<u8>) {
+                debug data => _4;
+                debug len => _5;
+                let mut _6: *const ();
+                scope 12 (inlined std::ptr::const_ptr::<impl *const u8>::cast::<()>) {
+                    debug self => _4;
+                }
+                scope 13 (inlined std::ptr::from_raw_parts::<[u8]>) {
+                    debug data_pointer => _6;
+                    debug metadata => _5;
+                }
+            }
+        }
+    }
+
+    bb0: {
+        StorageLive(_4);
+        StorageLive(_2);
+        _2 = &((*_1).0: alloc::raw_vec::RawVec<u8>);
+        StorageLive(_3);
+        _3 = ((((*_1).0: alloc::raw_vec::RawVec<u8>).0: std::ptr::Unique<u8>).0: std::ptr::NonNull<u8>);
+        _4 = (_3.0: *const u8);
+        StorageDead(_3);
+        StorageDead(_2);
+        StorageLive(_5);
+        _5 = ((*_1).1: usize);
+        StorageLive(_6);
+        _6 = _4 as *const () (PtrToPtr);
+        _7 = *const [u8] from (_6, _5);
+        StorageDead(_6);
+        StorageDead(_5);
+        StorageDead(_4);
+        _0 = &(*_7);
+        return;
+    }
+}
diff --git a/tests/ui/issues/issue-19129-1.rs b/tests/ui/associated-types/issue-19129-1.rs
index 65340b413e9..65340b413e9 100644
--- a/tests/ui/issues/issue-19129-1.rs
+++ b/tests/ui/associated-types/issue-19129-1.rs
diff --git a/tests/ui/issues/issue-19129-2.rs b/tests/ui/associated-types/issue-19129-2.rs
index 6562c54b0b7..6562c54b0b7 100644
--- a/tests/ui/issues/issue-19129-2.rs
+++ b/tests/ui/associated-types/issue-19129-2.rs
diff --git a/tests/ui/issues/issue-20763-1.rs b/tests/ui/associated-types/issue-20763-1.rs
index ea2e696767d..ea2e696767d 100644
--- a/tests/ui/issues/issue-20763-1.rs
+++ b/tests/ui/associated-types/issue-20763-1.rs
diff --git a/tests/ui/issues/issue-20763-2.rs b/tests/ui/associated-types/issue-20763-2.rs
index 149bfcb8c99..149bfcb8c99 100644
--- a/tests/ui/issues/issue-20763-2.rs
+++ b/tests/ui/associated-types/issue-20763-2.rs
diff --git a/tests/ui/issues/issue-40402-ref-hints/issue-40402-1.rs b/tests/ui/binding/issue-40402-1.rs
index 254956ae306..254956ae306 100644
--- a/tests/ui/issues/issue-40402-ref-hints/issue-40402-1.rs
+++ b/tests/ui/binding/issue-40402-1.rs
diff --git a/tests/ui/issues/issue-40402-ref-hints/issue-40402-1.stderr b/tests/ui/binding/issue-40402-1.stderr
index d27b6e6324f..d27b6e6324f 100644
--- a/tests/ui/issues/issue-40402-ref-hints/issue-40402-1.stderr
+++ b/tests/ui/binding/issue-40402-1.stderr
diff --git a/tests/ui/issues/issue-40402-ref-hints/issue-40402-2.rs b/tests/ui/binding/issue-40402-2.rs
index 1fb6e31e964..1fb6e31e964 100644
--- a/tests/ui/issues/issue-40402-ref-hints/issue-40402-2.rs
+++ b/tests/ui/binding/issue-40402-2.rs
diff --git a/tests/ui/issues/issue-40402-ref-hints/issue-40402-2.stderr b/tests/ui/binding/issue-40402-2.stderr
index 987558903ee..987558903ee 100644
--- a/tests/ui/issues/issue-40402-ref-hints/issue-40402-2.stderr
+++ b/tests/ui/binding/issue-40402-2.stderr
diff --git a/tests/ui/issues/issue-22864-1.rs b/tests/ui/closures/issue-22864-1.rs
index 3d88a2a50b4..3d88a2a50b4 100644
--- a/tests/ui/issues/issue-22864-1.rs
+++ b/tests/ui/closures/issue-22864-1.rs
diff --git a/tests/ui/issues/issue-22864-2.rs b/tests/ui/closures/issue-22864-2.rs
index d98dbeda46b..d98dbeda46b 100644
--- a/tests/ui/issues/issue-22864-2.rs
+++ b/tests/ui/closures/issue-22864-2.rs
diff --git a/tests/ui/issues/issue-5239-1.rs b/tests/ui/closures/issue-5239-1.rs
index 708ae34c6c6..708ae34c6c6 100644
--- a/tests/ui/issues/issue-5239-1.rs
+++ b/tests/ui/closures/issue-5239-1.rs
diff --git a/tests/ui/issues/issue-5239-1.stderr b/tests/ui/closures/issue-5239-1.stderr
index 63c2dbfc55c..63c2dbfc55c 100644
--- a/tests/ui/issues/issue-5239-1.stderr
+++ b/tests/ui/closures/issue-5239-1.stderr
diff --git a/tests/ui/issues/issue-5239-2.rs b/tests/ui/closures/issue-5239-2.rs
index 8239b06404a..8239b06404a 100644
--- a/tests/ui/issues/issue-5239-2.rs
+++ b/tests/ui/closures/issue-5239-2.rs
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.fixed b/tests/ui/coercion/issue-32122-1.fixed
index abcef9fcbd9..abcef9fcbd9 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.fixed
+++ b/tests/ui/coercion/issue-32122-1.fixed
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.rs b/tests/ui/coercion/issue-32122-1.rs
index 920ec348419..920ec348419 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.rs
+++ b/tests/ui/coercion/issue-32122-1.rs
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.stderr b/tests/ui/coercion/issue-32122-1.stderr
index ae5dffe1fad..ae5dffe1fad 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-1.stderr
+++ b/tests/ui/coercion/issue-32122-1.stderr
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.fixed b/tests/ui/coercion/issue-32122-2.fixed
index db406a4c3ac..db406a4c3ac 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.fixed
+++ b/tests/ui/coercion/issue-32122-2.fixed
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.rs b/tests/ui/coercion/issue-32122-2.rs
index 74242931b4e..74242931b4e 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.rs
+++ b/tests/ui/coercion/issue-32122-2.rs
diff --git a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.stderr b/tests/ui/coercion/issue-32122-2.stderr
index eb4327bef62..eb4327bef62 100644
--- a/tests/ui/issues/issue-32122-deref-coercions-composition/issue-32122-2.stderr
+++ b/tests/ui/coercion/issue-32122-2.stderr
diff --git a/tests/ui/issues/issue-19244-1.rs b/tests/ui/consts/issue-19244-1.rs
index 77fab7cfa32..77fab7cfa32 100644
--- a/tests/ui/issues/issue-19244-1.rs
+++ b/tests/ui/consts/issue-19244-1.rs
diff --git a/tests/ui/issues/issue-19244-1.stderr b/tests/ui/consts/issue-19244-1.stderr
index 9c1336402e6..9c1336402e6 100644
--- a/tests/ui/issues/issue-19244-1.stderr
+++ b/tests/ui/consts/issue-19244-1.stderr
diff --git a/tests/ui/issues/issue-19244-2.rs b/tests/ui/consts/issue-19244-2.rs
index c9a68b05c5b..c9a68b05c5b 100644
--- a/tests/ui/issues/issue-19244-2.rs
+++ b/tests/ui/consts/issue-19244-2.rs
diff --git a/tests/ui/issues/issue-19244-2.stderr b/tests/ui/consts/issue-19244-2.stderr
index 533861b1114..533861b1114 100644
--- a/tests/ui/issues/issue-19244-2.stderr
+++ b/tests/ui/consts/issue-19244-2.stderr
diff --git a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.fixed b/tests/ui/deref-patterns/issue-71676-1.fixed
index 8b473de4ac2..8b473de4ac2 100644
--- a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.fixed
+++ b/tests/ui/deref-patterns/issue-71676-1.fixed
diff --git a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.rs b/tests/ui/deref-patterns/issue-71676-1.rs
index 38d23fb8428..38d23fb8428 100644
--- a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.rs
+++ b/tests/ui/deref-patterns/issue-71676-1.rs
diff --git a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.stderr b/tests/ui/deref-patterns/issue-71676-1.stderr
index 164641ff775..164641ff775 100644
--- a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-1.stderr
+++ b/tests/ui/deref-patterns/issue-71676-1.stderr
diff --git a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.rs b/tests/ui/deref-patterns/issue-71676-2.rs
index f3183899dc5..f3183899dc5 100644
--- a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.rs
+++ b/tests/ui/deref-patterns/issue-71676-2.rs
diff --git a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.stderr b/tests/ui/deref-patterns/issue-71676-2.stderr
index 6ed318c8768..6ed318c8768 100644
--- a/tests/ui/issues/issue-71676-suggest-deref/issue-71676-2.stderr
+++ b/tests/ui/deref-patterns/issue-71676-2.stderr
diff --git a/tests/ui/issues/auxiliary/issue-19340-1.rs b/tests/ui/enum/auxiliary/issue-19340-1.rs
index 39ee36b8b91..39ee36b8b91 100644
--- a/tests/ui/issues/auxiliary/issue-19340-1.rs
+++ b/tests/ui/enum/auxiliary/issue-19340-1.rs
diff --git a/tests/ui/issues/issue-19340-1.rs b/tests/ui/enum/issue-19340-1.rs
index c1ba0d23b6f..c1ba0d23b6f 100644
--- a/tests/ui/issues/issue-19340-1.rs
+++ b/tests/ui/enum/issue-19340-1.rs
diff --git a/tests/ui/issues/issue-19340-2.rs b/tests/ui/enum/issue-19340-2.rs
index dd1bda78a97..dd1bda78a97 100644
--- a/tests/ui/issues/issue-19340-2.rs
+++ b/tests/ui/enum/issue-19340-2.rs
diff --git a/tests/ui/issues/issue-23304-1.rs b/tests/ui/enum/issue-23304-1.rs
index 6b80646704a..6b80646704a 100644
--- a/tests/ui/issues/issue-23304-1.rs
+++ b/tests/ui/enum/issue-23304-1.rs
diff --git a/tests/ui/issues/issue-23304-2.rs b/tests/ui/enum/issue-23304-2.rs
index 17eb79e93d2..17eb79e93d2 100644
--- a/tests/ui/issues/issue-23304-2.rs
+++ b/tests/ui/enum/issue-23304-2.rs
diff --git a/tests/ui/issues/issue-22933-1.rs b/tests/ui/expr/issue-22933-1.rs
index 8f1f5a5048a..8f1f5a5048a 100644
--- a/tests/ui/issues/issue-22933-1.rs
+++ b/tests/ui/expr/issue-22933-1.rs
diff --git a/tests/ui/issues/issue-22933-2.rs b/tests/ui/expr/issue-22933-2.rs
index dfd84b9a79d..dfd84b9a79d 100644
--- a/tests/ui/issues/issue-22933-2.rs
+++ b/tests/ui/expr/issue-22933-2.rs
diff --git a/tests/ui/issues/issue-22933-2.stderr b/tests/ui/expr/issue-22933-2.stderr
index 8cda8598f3c..8cda8598f3c 100644
--- a/tests/ui/issues/issue-22933-2.stderr
+++ b/tests/ui/expr/issue-22933-2.stderr
diff --git a/tests/ui/issues/issue-11692-1.rs b/tests/ui/macros/issue-11692-1.rs
index b6f3bb8ef05..b6f3bb8ef05 100644
--- a/tests/ui/issues/issue-11692-1.rs
+++ b/tests/ui/macros/issue-11692-1.rs
diff --git a/tests/ui/issues/issue-11692-1.stderr b/tests/ui/macros/issue-11692-1.stderr
index 46382f65218..46382f65218 100644
--- a/tests/ui/issues/issue-11692-1.stderr
+++ b/tests/ui/macros/issue-11692-1.stderr
diff --git a/tests/ui/issues/issue-11692-2.rs b/tests/ui/macros/issue-11692-2.rs
index 5957ed338f4..5957ed338f4 100644
--- a/tests/ui/issues/issue-11692-2.rs
+++ b/tests/ui/macros/issue-11692-2.rs
diff --git a/tests/ui/issues/issue-11692-2.stderr b/tests/ui/macros/issue-11692-2.stderr
index 53add509ca5..53add509ca5 100644
--- a/tests/ui/issues/issue-11692-2.stderr
+++ b/tests/ui/macros/issue-11692-2.stderr
diff --git a/tests/ui/issues/issue-57362-1.rs b/tests/ui/nll/issue-57362-1.rs
index 1fa417fe98a..1fa417fe98a 100644
--- a/tests/ui/issues/issue-57362-1.rs
+++ b/tests/ui/nll/issue-57362-1.rs
diff --git a/tests/ui/issues/issue-57362-1.stderr b/tests/ui/nll/issue-57362-1.stderr
index 79b1b131afa..79b1b131afa 100644
--- a/tests/ui/issues/issue-57362-1.stderr
+++ b/tests/ui/nll/issue-57362-1.stderr
diff --git a/tests/ui/issues/issue-57362-2.rs b/tests/ui/nll/issue-57362-2.rs
index a0b0ea1d038..a0b0ea1d038 100644
--- a/tests/ui/issues/issue-57362-2.rs
+++ b/tests/ui/nll/issue-57362-2.rs
diff --git a/tests/ui/issues/issue-57362-2.stderr b/tests/ui/nll/issue-57362-2.stderr
index 57477f5341e..57477f5341e 100644
--- a/tests/ui/issues/issue-57362-2.stderr
+++ b/tests/ui/nll/issue-57362-2.stderr
diff --git a/tests/ui/issues/issue-12187-1.rs b/tests/ui/parser/issue-12187-1.rs
index 86128ed94bd..86128ed94bd 100644
--- a/tests/ui/issues/issue-12187-1.rs
+++ b/tests/ui/parser/issue-12187-1.rs
diff --git a/tests/ui/issues/issue-12187-1.stderr b/tests/ui/parser/issue-12187-1.stderr
index 704854fe585..704854fe585 100644
--- a/tests/ui/issues/issue-12187-1.stderr
+++ b/tests/ui/parser/issue-12187-1.stderr
diff --git a/tests/ui/issues/issue-12187-2.rs b/tests/ui/parser/issue-12187-2.rs
index 080a6206be7..080a6206be7 100644
--- a/tests/ui/issues/issue-12187-2.rs
+++ b/tests/ui/parser/issue-12187-2.rs
diff --git a/tests/ui/issues/issue-12187-2.stderr b/tests/ui/parser/issue-12187-2.stderr
index eeef63a1d0b..eeef63a1d0b 100644
--- a/tests/ui/issues/issue-12187-2.stderr
+++ b/tests/ui/parser/issue-12187-2.stderr
diff --git a/tests/ui/issues/issue-23122-1.rs b/tests/ui/recursion/issue-23122-1.rs
index 7fe0900ed5f..7fe0900ed5f 100644
--- a/tests/ui/issues/issue-23122-1.rs
+++ b/tests/ui/recursion/issue-23122-1.rs
diff --git a/tests/ui/issues/issue-23122-1.stderr b/tests/ui/recursion/issue-23122-1.stderr
index c432a502c13..c432a502c13 100644
--- a/tests/ui/issues/issue-23122-1.stderr
+++ b/tests/ui/recursion/issue-23122-1.stderr
diff --git a/tests/ui/issues/issue-23122-2.rs b/tests/ui/recursion/issue-23122-2.rs
index 2880b956417..2880b956417 100644
--- a/tests/ui/issues/issue-23122-2.rs
+++ b/tests/ui/recursion/issue-23122-2.rs
diff --git a/tests/ui/issues/issue-23122-2.stderr b/tests/ui/recursion/issue-23122-2.stderr
index 10463ab2c33..10463ab2c33 100644
--- a/tests/ui/issues/issue-23122-2.stderr
+++ b/tests/ui/recursion/issue-23122-2.stderr
diff --git a/tests/ui/issues/issue-3214.rs b/tests/ui/resolve/issue-3214.rs
index b2c27f5be95..b2c27f5be95 100644
--- a/tests/ui/issues/issue-3214.rs
+++ b/tests/ui/resolve/issue-3214.rs
diff --git a/tests/ui/issues/issue-3214.stderr b/tests/ui/resolve/issue-3214.stderr
index 5b57c1baf90..5b57c1baf90 100644
--- a/tests/ui/issues/issue-3214.stderr
+++ b/tests/ui/resolve/issue-3214.stderr
diff --git a/tests/ui/issues/issue-7607-1.rs b/tests/ui/type/issue-7607-1.rs
index 5221f2c529b..5221f2c529b 100644
--- a/tests/ui/issues/issue-7607-1.rs
+++ b/tests/ui/type/issue-7607-1.rs
diff --git a/tests/ui/issues/issue-7607-1.stderr b/tests/ui/type/issue-7607-1.stderr
index db4c8f25dbc..db4c8f25dbc 100644
--- a/tests/ui/issues/issue-7607-1.stderr
+++ b/tests/ui/type/issue-7607-1.stderr
diff --git a/tests/ui/issues/issue-7607-2.rs b/tests/ui/type/issue-7607-2.rs
index 654f26bf298..654f26bf298 100644
--- a/tests/ui/issues/issue-7607-2.rs
+++ b/tests/ui/type/issue-7607-2.rs