about summary refs log tree commit diff
path: root/tests/codegen/issues
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-21 14:34:12 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-22 14:28:48 +0200
commita27f3e3fd1e4d16160f8885b6b06665b5319f56c (patch)
treeb033935392cbadf6f85d2dbddf433a88e323aeeb /tests/codegen/issues
parented93c1783b404d728d4809973a0550eb33cd293f (diff)
downloadrust-a27f3e3fd1e4d16160f8885b6b06665b5319f56c.tar.gz
rust-a27f3e3fd1e4d16160f8885b6b06665b5319f56c.zip
Rename `tests/codegen` into `tests/codegen-llvm`
Diffstat (limited to 'tests/codegen/issues')
-rw-r--r--tests/codegen/issues/issue-101048.rs12
-rw-r--r--tests/codegen/issues/issue-101082.rs42
-rw-r--r--tests/codegen/issues/issue-101814.rs18
-rw-r--r--tests/codegen/issues/issue-103132.rs15
-rw-r--r--tests/codegen/issues/issue-103285-ptr-addr-overflow-check.rs15
-rw-r--r--tests/codegen/issues/issue-103327.rs13
-rw-r--r--tests/codegen/issues/issue-103840.rs9
-rw-r--r--tests/codegen/issues/issue-105386-ub-in-debuginfo.rs24
-rw-r--r--tests/codegen/issues/issue-106369.rs14
-rw-r--r--tests/codegen/issues/issue-107681-unwrap_unchecked.rs19
-rw-r--r--tests/codegen/issues/issue-108395-branchy-bool-match.rs27
-rw-r--r--tests/codegen/issues/issue-109328-split_first.rs16
-rw-r--r--tests/codegen/issues/issue-110797-enum-jump-same.rs25
-rw-r--r--tests/codegen/issues/issue-111603.rs40
-rw-r--r--tests/codegen/issues/issue-112509-slice-get-andthen-get.rs16
-rw-r--r--tests/codegen/issues/issue-113757-bounds-check-after-cmp-max.rs18
-rw-r--r--tests/codegen/issues/issue-114312.rs25
-rw-r--r--tests/codegen/issues/issue-115385-llvm-jump-threading.rs46
-rw-r--r--tests/codegen/issues/issue-116878.rs11
-rw-r--r--tests/codegen/issues/issue-118306.rs22
-rw-r--r--tests/codegen/issues/issue-118392.rs10
-rw-r--r--tests/codegen/issues/issue-119422.rs83
-rw-r--r--tests/codegen/issues/issue-121719-common-field-offset.rs44
-rw-r--r--tests/codegen/issues/issue-122600-ptr-discriminant-update.rs43
-rw-r--r--tests/codegen/issues/issue-123712-str-to-lower-autovectorization.rs23
-rw-r--r--tests/codegen/issues/issue-126585.rs23
-rw-r--r--tests/codegen/issues/issue-129795.rs17
-rw-r--r--tests/codegen/issues/issue-13018.rs14
-rw-r--r--tests/codegen/issues/issue-136329-optnone-noinline.rs21
-rw-r--r--tests/codegen/issues/issue-15953.rs29
-rw-r--r--tests/codegen/issues/issue-27130.rs21
-rw-r--r--tests/codegen/issues/issue-32031.rs29
-rw-r--r--tests/codegen/issues/issue-32364.rs17
-rw-r--r--tests/codegen/issues/issue-34634.rs16
-rw-r--r--tests/codegen/issues/issue-34947-pow-i32.rs13
-rw-r--r--tests/codegen/issues/issue-36010-some-box-is_some.rs28
-rw-r--r--tests/codegen/issues/issue-37945.rs34
-rw-r--r--tests/codegen/issues/issue-45222.rs62
-rw-r--r--tests/codegen/issues/issue-45466.rs14
-rw-r--r--tests/codegen/issues/issue-45964-bounds-check-slice-pos.rs38
-rw-r--r--tests/codegen/issues/issue-47278.rs11
-rw-r--r--tests/codegen/issues/issue-47442.rs22
-rw-r--r--tests/codegen/issues/issue-56267-2.rs18
-rw-r--r--tests/codegen/issues/issue-56267.rs18
-rw-r--r--tests/codegen/issues/issue-56927.rs46
-rw-r--r--tests/codegen/issues/issue-58881.rs20
-rw-r--r--tests/codegen/issues/issue-59352.rs18
-rw-r--r--tests/codegen/issues/issue-64219-fn-ptr-call-returning-never-is-noreturn.rs19
-rw-r--r--tests/codegen/issues/issue-68667-unwrap-combinators.rs15
-rw-r--r--tests/codegen/issues/issue-69101-bounds-check.rs42
-rw-r--r--tests/codegen/issues/issue-73031.rs22
-rw-r--r--tests/codegen/issues/issue-73258.rs40
-rw-r--r--tests/codegen/issues/issue-73338-effecient-cmp.rs39
-rw-r--r--tests/codegen/issues/issue-73396-bounds-check-after-position.rs70
-rw-r--r--tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs17
-rw-r--r--tests/codegen/issues/issue-74938-array-split-at.rs14
-rw-r--r--tests/codegen/issues/issue-75525-bounds-checks.rs26
-rw-r--r--tests/codegen/issues/issue-75546.rs17
-rw-r--r--tests/codegen/issues/issue-75659.rs63
-rw-r--r--tests/codegen/issues/issue-75978.rs18
-rw-r--r--tests/codegen/issues/issue-77812.rs32
-rw-r--r--tests/codegen/issues/issue-84268.rs18
-rw-r--r--tests/codegen/issues/issue-85872-multiple-reverse.rs19
-rw-r--r--tests/codegen/issues/issue-86106.rs63
-rw-r--r--tests/codegen/issues/issue-86109-eliminate-div-by-zero-check.rs26
-rw-r--r--tests/codegen/issues/issue-93036-assert-index.rs14
-rw-r--r--tests/codegen/issues/issue-96274.rs15
-rw-r--r--tests/codegen/issues/issue-96497-slice-size-nowrap.rs38
-rw-r--r--tests/codegen/issues/issue-98294-get-mut-copy-from-slice-opt.rs17
-rw-r--r--tests/codegen/issues/issue-98678-async.rs27
-rw-r--r--tests/codegen/issues/issue-98678-closure-coroutine.rs25
-rw-r--r--tests/codegen/issues/issue-98678-enum.rs42
-rw-r--r--tests/codegen/issues/issue-98678-struct-union.rs27
-rw-r--r--tests/codegen/issues/issue-99960.rs10
-rw-r--r--tests/codegen/issues/looping-over-ne-bytes-133528.rs17
-rw-r--r--tests/codegen/issues/str-to-string-128690.rs38
76 files changed, 0 insertions, 1989 deletions
diff --git a/tests/codegen/issues/issue-101048.rs b/tests/codegen/issues/issue-101048.rs
deleted file mode 100644
index cfe65e758fd..00000000000
--- a/tests/codegen/issues/issue-101048.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn all_zero(data: &[u64]) -> bool {
-    // CHECK-LABEL: @all_zero(
-    // CHECK: [[PHI:%.*]] = phi i1
-    // CHECK-NOT: phi i8
-    // CHECK-NOT: zext
-    data.iter().copied().fold(true, |acc, x| acc & (x == 0))
-}
diff --git a/tests/codegen/issues/issue-101082.rs b/tests/codegen/issues/issue-101082.rs
deleted file mode 100644
index 8d15921ddb4..00000000000
--- a/tests/codegen/issues/issue-101082.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//@ revisions: host x86-64 x86-64-v3
-//@ min-llvm-version: 20
-
-//@[host] ignore-x86_64
-
-// Set the base cpu explicitly, in case the default has been changed.
-//@[x86-64] only-x86_64
-//@[x86-64] compile-flags: -Ctarget-cpu=x86-64
-
-// FIXME(cuviper) x86-64-v3 in particular regressed in #131563, and the workaround
-// at the time still sometimes fails, so only verify it for the power-of-two size
-// - https://github.com/llvm/llvm-project/issues/134735
-//@[x86-64-v3] only-x86_64
-//@[x86-64-v3] min-llvm-version: 21
-//@[x86-64-v3] compile-flags: -Ctarget-cpu=x86-64-v3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test() -> usize {
-    // CHECK-LABEL: @test(
-    // CHECK: ret {{i64|i32}} 165
-    let values = [23, 16, 54, 3, 60, 9];
-    let mut acc = 0;
-    for item in values {
-        acc += item;
-    }
-    acc
-}
-
-#[no_mangle]
-pub fn test_eight() -> usize {
-    // CHECK-LABEL: @test_eight(
-    // CHECK: ret {{i64|i32}} 220
-    let values = [23, 16, 54, 3, 60, 9, 13, 42];
-    let mut acc = 0;
-    for item in values {
-        acc += item;
-    }
-    acc
-}
diff --git a/tests/codegen/issues/issue-101814.rs b/tests/codegen/issues/issue-101814.rs
deleted file mode 100644
index 668ec8476e8..00000000000
--- a/tests/codegen/issues/issue-101814.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test(a: [i32; 10]) -> i32 {
-    // CHECK-LABEL: @test(
-    // CHECK: [[L1:%.+]] = load i32
-    // CHECK: [[L2:%.+]] = load i32
-    // CHECK: [[R:%.+]] = add i32 [[L1]], [[L2]]
-    // CHECK: ret i32 [[R]]
-    let mut sum = 0;
-    for v in a.iter().skip(8) {
-        sum += v;
-    }
-
-    sum
-}
diff --git a/tests/codegen/issues/issue-103132.rs b/tests/codegen/issues/issue-103132.rs
deleted file mode 100644
index 623cab92806..00000000000
--- a/tests/codegen/issues/issue-103132.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-//@ compile-flags: -Copt-level=3 -C overflow-checks
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test(arr: &[u8], weight: u32) {
-    // CHECK-LABEL: @test(
-    // CHECK-NOT: panic
-    let weight = weight.min(256 * 256 * 256);
-
-    for x in arr {
-        assert!(weight <= 256 * 256 * 256);
-        let result = *x as u32 * weight;
-    }
-}
diff --git a/tests/codegen/issues/issue-103285-ptr-addr-overflow-check.rs b/tests/codegen/issues/issue-103285-ptr-addr-overflow-check.rs
deleted file mode 100644
index 3ada5412e83..00000000000
--- a/tests/codegen/issues/issue-103285-ptr-addr-overflow-check.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-//@ compile-flags: -Copt-level=3 -C debug-assertions=yes
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test(src: *const u8, dst: *const u8) -> usize {
-    // CHECK-LABEL: @test(
-    // CHECK-NOT: panic
-    let src_usize = src.addr();
-    let dst_usize = dst.addr();
-    if src_usize > dst_usize {
-        return src_usize - dst_usize;
-    }
-    return 0;
-}
diff --git a/tests/codegen/issues/issue-103327.rs b/tests/codegen/issues/issue-103327.rs
deleted file mode 100644
index 4de3cfd12a0..00000000000
--- a/tests/codegen/issues/issue-103327.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test(a: i32, b: i32) -> bool {
-    // CHECK-LABEL: @test(
-    // CHECK: ret i1 true
-    let c1 = (a >= 0) && (a <= 10);
-    let c2 = (b >= 0) && (b <= 20);
-
-    if c1 & c2 { a + 100 != b } else { true }
-}
diff --git a/tests/codegen/issues/issue-103840.rs b/tests/codegen/issues/issue-103840.rs
deleted file mode 100644
index c6c5098bdd0..00000000000
--- a/tests/codegen/issues/issue-103840.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-pub fn foo(t: &mut Vec<usize>) {
-    // CHECK-NOT: __rust_dealloc
-    let mut taken = std::mem::take(t);
-    taken.pop();
-    *t = taken;
-}
diff --git a/tests/codegen/issues/issue-105386-ub-in-debuginfo.rs b/tests/codegen/issues/issue-105386-ub-in-debuginfo.rs
deleted file mode 100644
index 848aa910b58..00000000000
--- a/tests/codegen/issues/issue-105386-ub-in-debuginfo.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-//@ compile-flags: --crate-type=lib -Copt-level=3 -Cdebuginfo=2 -Cno-prepopulate-passes -Zmir-enable-passes=-ScalarReplacementOfAggregates
-// MIR SROA will decompose the closure
-#![feature(stmt_expr_attributes)]
-
-pub struct S([usize; 8]);
-
-#[no_mangle]
-pub fn outer_function(x: S, y: S) -> usize {
-    (#[inline(always)]
-    || {
-        let _z = x;
-        y.0[0]
-    })()
-}
-
-// Check that we do not attempt to load from the spilled arg before it is assigned to
-// when generating debuginfo.
-// CHECK-LABEL: @outer_function
-// CHECK: [[spill:%.*]] = alloca
-// CHECK-NOT: [[ptr_tmp:%.*]] = getelementptr inbounds i8, ptr [[spill]]
-// CHECK-NOT: [[load:%.*]] = load ptr, ptr
-// CHECK: call void @llvm.lifetime.start{{.*}}({{.*}}, ptr [[spill]])
-// CHECK: [[inner:%.*]] = getelementptr inbounds i8, ptr [[spill]]
-// CHECK: call void @llvm.memcpy{{.*}}(ptr {{align .*}} [[inner]], ptr {{align .*}} %x
diff --git a/tests/codegen/issues/issue-106369.rs b/tests/codegen/issues/issue-106369.rs
deleted file mode 100644
index 3583d20c9fa..00000000000
--- a/tests/codegen/issues/issue-106369.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// From <https://github.com/rust-lang/rust/issues/106369#issuecomment-1369095304>
-
-// CHECK-LABEL: @issue_106369(
-#[no_mangle]
-pub unsafe fn issue_106369(ptr: *const &i32) -> bool {
-    // CHECK-NOT: icmp
-    // CHECK: ret i1 true
-    // CHECK-NOT: icmp
-    Some(std::ptr::read(ptr)).is_some()
-}
diff --git a/tests/codegen/issues/issue-107681-unwrap_unchecked.rs b/tests/codegen/issues/issue-107681-unwrap_unchecked.rs
deleted file mode 100644
index 69aefc6b1fb..00000000000
--- a/tests/codegen/issues/issue-107681-unwrap_unchecked.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-// Test for #107681.
-// Make sure we don't create `br` or `select` instructions.
-
-#![crate_type = "lib"]
-
-use std::iter::Copied;
-use std::slice::Iter;
-
-#[no_mangle]
-pub unsafe fn foo(x: &mut Copied<Iter<'_, u32>>) -> u32 {
-    // CHECK-LABEL: @foo(
-    // CHECK-NOT: br
-    // CHECK-NOT: select
-    // CHECK: [[RET:%.*]] = load i32, ptr
-    // CHECK-NEXT: ret i32 [[RET]]
-    x.next().unwrap_unchecked()
-}
diff --git a/tests/codegen/issues/issue-108395-branchy-bool-match.rs b/tests/codegen/issues/issue-108395-branchy-bool-match.rs
deleted file mode 100644
index 96387e791b0..00000000000
--- a/tests/codegen/issues/issue-108395-branchy-bool-match.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-//@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
-//! Test for <https://github.com/rust-lang/rust/issues/108395>. Check that
-//! matching on two bools with wildcards does not produce branches.
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @wildcard(
-#[no_mangle]
-pub fn wildcard(a: u16, b: u16, v: u16) -> u16 {
-    // CHECK-NOT: br
-    match (a == v, b == v) {
-        (true, false) => 0,
-        (false, true) => u16::MAX,
-        _ => 1 << 15, // half
-    }
-}
-
-// CHECK-LABEL: @exhaustive(
-#[no_mangle]
-pub fn exhaustive(a: u16, b: u16, v: u16) -> u16 {
-    // CHECK-NOT: br
-    match (a == v, b == v) {
-        (true, false) => 0,
-        (false, true) => u16::MAX,
-        (true, true) => 1 << 15,
-        (false, false) => 1 << 15,
-    }
-}
diff --git a/tests/codegen/issues/issue-109328-split_first.rs b/tests/codegen/issues/issue-109328-split_first.rs
deleted file mode 100644
index 26235edfc19..00000000000
--- a/tests/codegen/issues/issue-109328-split_first.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @foo
-// CHECK-NEXT: {{.*}}:
-// CHECK-NEXT: getelementptr inbounds
-// CHECK-NEXT: load [[TYPE:i(32|64)]]
-// CHECK-NEXT: icmp eq [[TYPE]]
-// CHECK-NEXT: br i1
-#[no_mangle]
-pub fn foo(input: &mut &[u64]) -> Option<u64> {
-    let (first, rest) = input.split_first()?;
-    *input = rest;
-    Some(*first)
-}
diff --git a/tests/codegen/issues/issue-110797-enum-jump-same.rs b/tests/codegen/issues/issue-110797-enum-jump-same.rs
deleted file mode 100644
index b5f7c08795b..00000000000
--- a/tests/codegen/issues/issue-110797-enum-jump-same.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-pub enum K {
-    A(Box<[i32]>),
-    B(Box<[u8]>),
-    C(Box<[String]>),
-    D(Box<[u16]>),
-}
-
-// CHECK-LABEL: @get_len
-// CHECK-NEXT: {{.*}}:
-// CHECK-NEXT: getelementptr inbounds
-// CHECK-NEXT: load [[TYPE:i(32|64)]]
-// CHECK-NEXT: ret [[TYPE]]
-#[no_mangle]
-pub fn get_len(arg: &K) -> usize {
-    match arg {
-        K::A(ref lst) => lst.len(),
-        K::B(ref lst) => lst.len(),
-        K::C(ref lst) => lst.len(),
-        K::D(ref lst) => lst.len(),
-    }
-}
diff --git a/tests/codegen/issues/issue-111603.rs b/tests/codegen/issues/issue-111603.rs
deleted file mode 100644
index 2ba5a3f876a..00000000000
--- a/tests/codegen/issues/issue-111603.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-#![feature(get_mut_unchecked, new_uninit)]
-
-use std::sync::Arc;
-
-// CHECK-LABEL: @new_from_array
-#[no_mangle]
-pub fn new_from_array(x: u64) -> Arc<[u64]> {
-    // Ensure that we only generate one alloca for the array.
-
-    // CHECK: alloca
-    // CHECK-SAME: [8000 x i8]
-    // CHECK-NOT: alloca
-    let array = [x; 1000];
-    Arc::new(array)
-}
-
-// CHECK-LABEL: @new_uninit
-#[no_mangle]
-pub fn new_uninit(x: u64) -> Arc<[u64; 1000]> {
-    // CHECK: call alloc::sync::arcinner_layout_for_value_layout
-    // CHECK-NOT: call alloc::sync::arcinner_layout_for_value_layout
-    let mut arc = Arc::new_uninit();
-    unsafe { Arc::get_mut_unchecked(&mut arc) }.write([x; 1000]);
-    unsafe { arc.assume_init() }
-}
-
-// CHECK-LABEL: @new_uninit_slice
-#[no_mangle]
-pub fn new_uninit_slice(x: u64) -> Arc<[u64]> {
-    // CHECK: call alloc::sync::arcinner_layout_for_value_layout
-    // CHECK-NOT: call alloc::sync::arcinner_layout_for_value_layout
-    let mut arc = Arc::new_uninit_slice(1000);
-    for elem in unsafe { Arc::get_mut_unchecked(&mut arc) } {
-        elem.write(x);
-    }
-    unsafe { arc.assume_init() }
-}
diff --git a/tests/codegen/issues/issue-112509-slice-get-andthen-get.rs b/tests/codegen/issues/issue-112509-slice-get-andthen-get.rs
deleted file mode 100644
index 3909b203d08..00000000000
--- a/tests/codegen/issues/issue-112509-slice-get-andthen-get.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @write_u8_variant_a
-// CHECK-NEXT: {{.*}}:
-// CHECK-NEXT: icmp ugt
-// CHECK-NEXT: getelementptr
-// CHECK-NEXT: select i1 {{.+}} null
-// CHECK-NEXT: insertvalue
-// CHECK-NEXT: insertvalue
-// CHECK-NEXT: ret
-#[no_mangle]
-pub fn write_u8_variant_a(bytes: &mut [u8], buf: u8, offset: usize) -> Option<&mut [u8]> {
-    let buf = buf.to_le_bytes();
-    bytes.get_mut(offset..).and_then(|bytes| bytes.get_mut(..buf.len()))
-}
diff --git a/tests/codegen/issues/issue-113757-bounds-check-after-cmp-max.rs b/tests/codegen/issues/issue-113757-bounds-check-after-cmp-max.rs
deleted file mode 100644
index d495adf9980..00000000000
--- a/tests/codegen/issues/issue-113757-bounds-check-after-cmp-max.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-// in Rust 1.73, -O and opt-level=3 optimizes differently
-//@ compile-flags: -C opt-level=3
-#![crate_type = "lib"]
-
-use std::cmp::max;
-
-// CHECK-LABEL: @foo
-// CHECK-NOT: slice_start_index_len_fail
-// CHECK-NOT: unreachable
-#[no_mangle]
-pub fn foo(v: &mut Vec<u8>, size: usize) -> Option<&mut [u8]> {
-    if v.len() > max(1, size) {
-        let start = v.len() - size;
-        Some(&mut v[start..])
-    } else {
-        None
-    }
-}
diff --git a/tests/codegen/issues/issue-114312.rs b/tests/codegen/issues/issue-114312.rs
deleted file mode 100644
index 61355dd5873..00000000000
--- a/tests/codegen/issues/issue-114312.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//@ only-x86_64-unknown-linux-gnu
-
-// We want to check that this function does not mis-optimize to loop jumping.
-
-#![crate_type = "lib"]
-
-#[repr(C)]
-pub enum Expr {
-    Sum,
-    // must have more than usize data
-    Sub(usize, u8),
-}
-
-#[no_mangle]
-pub extern "C" fn issue_114312(expr: Expr) {
-    // CHECK-LABEL: @issue_114312(
-    // CHECK-SAME: byval
-    // CHECK-NEXT: start:
-    // CHECK-NEXT: ret void
-    match expr {
-        Expr::Sum => {}
-        Expr::Sub(_, _) => issue_114312(Expr::Sum),
-    }
-}
diff --git a/tests/codegen/issues/issue-115385-llvm-jump-threading.rs b/tests/codegen/issues/issue-115385-llvm-jump-threading.rs
deleted file mode 100644
index 8cabd94f202..00000000000
--- a/tests/codegen/issues/issue-115385-llvm-jump-threading.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-//@ compile-flags: -Copt-level=3 -Ccodegen-units=1
-
-#![crate_type = "lib"]
-
-#[repr(i64)]
-pub enum Boolean {
-    False = 0,
-    True = 1,
-}
-
-impl Clone for Boolean {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-
-impl Copy for Boolean {}
-
-extern "C" {
-    fn set_value(foo: *mut i64);
-    fn bar();
-}
-
-pub fn foo(x: bool) {
-    let mut foo = core::mem::MaybeUninit::<i64>::uninit();
-    unsafe {
-        set_value(foo.as_mut_ptr());
-    }
-
-    if x {
-        let l1 = unsafe { *foo.as_mut_ptr().cast::<Boolean>() };
-        if matches!(l1, Boolean::False) {
-            unsafe {
-                *foo.as_mut_ptr() = 0;
-            }
-        }
-    }
-
-    let l2 = unsafe { *foo.as_mut_ptr() };
-    if l2 == 2 {
-        // CHECK: call void @bar
-        unsafe {
-            bar();
-        }
-    }
-}
diff --git a/tests/codegen/issues/issue-116878.rs b/tests/codegen/issues/issue-116878.rs
deleted file mode 100644
index daf46c8bb55..00000000000
--- a/tests/codegen/issues/issue-116878.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-/// Make sure no bounds checks are emitted after a `get_unchecked`.
-// CHECK-LABEL: @unchecked_slice_no_bounds_check
-#[no_mangle]
-pub unsafe fn unchecked_slice_no_bounds_check(s: &[u8]) -> u8 {
-    let a = *s.get_unchecked(1);
-    // CHECK-NOT: panic_bounds_check
-    a + s[0]
-}
diff --git a/tests/codegen/issues/issue-118306.rs b/tests/codegen/issues/issue-118306.rs
deleted file mode 100644
index f12dc7cdfe2..00000000000
--- a/tests/codegen/issues/issue-118306.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//@ only-x86_64
-
-// Test for #118306.
-// Make sure we don't create `br` or `select` instructions.
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn branchy(input: u64) -> u64 {
-    // CHECK-LABEL: @branchy(
-    // CHECK-NEXT:  start:
-    // CHECK-NEXT:    [[_2:%.*]] = and i64 [[INPUT:%.*]], 3
-    // CHECK-NEXT:    [[SWITCH_GEP:%.*]] = getelementptr inbounds{{( nuw)?}} [4 x i64], ptr @switch.table.branchy, i64 0, i64 [[_2]]
-    // CHECK-NEXT:    [[SWITCH_LOAD:%.*]] = load i64, ptr [[SWITCH_GEP]]
-    // CHECK-NEXT:    ret i64 [[SWITCH_LOAD]]
-    match input % 4 {
-        1 | 2 => 1,
-        3 => 2,
-        _ => 0,
-    }
-}
diff --git a/tests/codegen/issues/issue-118392.rs b/tests/codegen/issues/issue-118392.rs
deleted file mode 100644
index 07de8d9b237..00000000000
--- a/tests/codegen/issues/issue-118392.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @div2
-// CHECK: ashr i32 %a, 1
-// CHECK-NEXT: ret i32
-#[no_mangle]
-pub fn div2(a: i32) -> i32 {
-    a.div_euclid(2)
-}
diff --git a/tests/codegen/issues/issue-119422.rs b/tests/codegen/issues/issue-119422.rs
deleted file mode 100644
index 17ae71605b5..00000000000
--- a/tests/codegen/issues/issue-119422.rs
+++ /dev/null
@@ -1,83 +0,0 @@
-//! This test checks that compiler don't generate useless compares to zeros
-//! for `NonZero` integer types.
-//!
-//@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
-//@ edition: 2021
-//@ only-64bit (because the LLVM type of i64 for usize shows up)
-#![crate_type = "lib"]
-
-use core::num::NonZero;
-use core::ptr::NonNull;
-
-// CHECK-LABEL: @check_non_null
-#[no_mangle]
-pub fn check_non_null(x: NonNull<u8>) -> bool {
-    // CHECK: ret i1 false
-    x.as_ptr().is_null()
-}
-
-// CHECK-LABEL: @equals_zero_is_false_u8
-#[no_mangle]
-pub fn equals_zero_is_false_u8(x: NonZero<u8>) -> bool {
-    // CHECK-NOT: br
-    // CHECK: ret i1 false
-    // CHECK-NOT: br
-    x.get() == 0
-}
-
-// CHECK-LABEL: @not_equals_zero_is_true_u8
-#[no_mangle]
-pub fn not_equals_zero_is_true_u8(x: NonZero<u8>) -> bool {
-    // CHECK-NOT: br
-    // CHECK: ret i1 true
-    // CHECK-NOT: br
-    x.get() != 0
-}
-
-// CHECK-LABEL: @equals_zero_is_false_i8
-#[no_mangle]
-pub fn equals_zero_is_false_i8(x: NonZero<i8>) -> bool {
-    // CHECK-NOT: br
-    // CHECK: ret i1 false
-    // CHECK-NOT: br
-    x.get() == 0
-}
-
-// CHECK-LABEL: @not_equals_zero_is_true_i8
-#[no_mangle]
-pub fn not_equals_zero_is_true_i8(x: NonZero<i8>) -> bool {
-    // CHECK-NOT: br
-    // CHECK: ret i1 true
-    // CHECK-NOT: br
-    x.get() != 0
-}
-
-// CHECK-LABEL: @usize_try_from_u32
-#[no_mangle]
-pub fn usize_try_from_u32(x: NonZero<u32>) -> NonZero<usize> {
-    // CHECK-NOT: br
-    // CHECK: zext i32 %{{.*}} to i64
-    // CHECK-NOT: br
-    // CHECK: ret i64
-    x.try_into().unwrap()
-}
-
-// CHECK-LABEL: @isize_try_from_i32
-#[no_mangle]
-pub fn isize_try_from_i32(x: NonZero<i32>) -> NonZero<isize> {
-    // CHECK-NOT: br
-    // CHECK: sext i32 %{{.*}} to i64
-    // CHECK-NOT: br
-    // CHECK: ret i64
-    x.try_into().unwrap()
-}
-
-// CHECK-LABEL: @u64_from_nonzero_is_not_zero
-#[no_mangle]
-pub fn u64_from_nonzero_is_not_zero(x: NonZero<u64>) -> bool {
-    // CHECK-NOT: br
-    // CHECK: ret i1 false
-    // CHECK-NOT: br
-    let v: u64 = x.into();
-    v == 0
-}
diff --git a/tests/codegen/issues/issue-121719-common-field-offset.rs b/tests/codegen/issues/issue-121719-common-field-offset.rs
deleted file mode 100644
index 9f5f44e0375..00000000000
--- a/tests/codegen/issues/issue-121719-common-field-offset.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-//! This test checks that match branches which all access a field
-//! at the same offset are merged together.
-//!
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-#[repr(C)]
-pub struct A {
-    x: f64,
-    y: u64,
-}
-#[repr(C)]
-pub struct B {
-    x: f64,
-    y: u32,
-}
-#[repr(C)]
-pub struct C {
-    x: f64,
-    y: u16,
-}
-#[repr(C)]
-pub struct D {
-    x: f64,
-    y: u8,
-}
-
-pub enum E {
-    A(A),
-    B(B),
-    C(C),
-    D(D),
-}
-
-// CHECK-LABEL: @match_on_e
-#[no_mangle]
-pub fn match_on_e(e: &E) -> &f64 {
-    // CHECK: start:
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: ret
-    match e {
-        E::A(A { x, .. }) | E::B(B { x, .. }) | E::C(C { x, .. }) | E::D(D { x, .. }) => x,
-    }
-}
diff --git a/tests/codegen/issues/issue-122600-ptr-discriminant-update.rs b/tests/codegen/issues/issue-122600-ptr-discriminant-update.rs
deleted file mode 100644
index 853a1ff36b1..00000000000
--- a/tests/codegen/issues/issue-122600-ptr-discriminant-update.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// The bug here was that it was loading and storing the whole value.
-// It's ok for it to load the discriminant,
-// to preserve the UB from `unreachable_unchecked`,
-// but it better only store the constant discriminant of `B`.
-
-pub enum State {
-    A([u8; 753]),
-    B([u8; 753]),
-}
-
-// CHECK-LABEL: @update
-#[no_mangle]
-pub unsafe fn update(s: *mut State) {
-    // CHECK-NOT: alloca
-
-    // CHECK-NOT: load
-    // CHECK-NOT: store
-    // CHECK-NOT: memcpy
-    // CHECK-NOT: 75{{3|4}}
-
-    // CHECK: %[[TAG:.+]] = load i8, ptr %s, align 1
-    // CHECK-NEXT: trunc nuw i8 %[[TAG]] to i1
-
-    // CHECK-NOT: load
-    // CHECK-NOT: store
-    // CHECK-NOT: memcpy
-    // CHECK-NOT: 75{{3|4}}
-
-    // CHECK: store i8 1, ptr %s, align 1
-
-    // CHECK-NOT: load
-    // CHECK-NOT: store
-    // CHECK-NOT: memcpy
-    // CHECK-NOT: 75{{3|4}}
-
-    // CHECK: ret
-    let State::A(v) = s.read() else { std::hint::unreachable_unchecked() };
-    s.write(State::B(v));
-}
diff --git a/tests/codegen/issues/issue-123712-str-to-lower-autovectorization.rs b/tests/codegen/issues/issue-123712-str-to-lower-autovectorization.rs
deleted file mode 100644
index 11ee10e8cc3..00000000000
--- a/tests/codegen/issues/issue-123712-str-to-lower-autovectorization.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-//@ only-x86_64
-//@ compile-flags: -C opt-level=3
-#![crate_type = "lib"]
-#![no_std]
-#![feature(str_internals)]
-
-extern crate alloc;
-
-/// Ensure that the ascii-prefix loop for `str::to_lowercase` and `str::to_uppercase` uses vector
-/// instructions.
-///
-/// The llvm ir should be the same for all targets that support some form of simd. Only targets
-/// without any simd instructions would see scalarized ir.
-/// Unfortunately, there is no `only-simd` directive to only run this test on only such platforms,
-/// and using test revisions would still require the core libraries for all platforms.
-// CHECK-LABEL: @lower_while_ascii
-// CHECK: [[A:%[0-9]]] = load <16 x i8>
-// CHECK-NEXT: [[B:%[0-9]]] = icmp slt <16 x i8> [[A]], zeroinitializer
-// CHECK-NEXT: [[C:%[0-9]]] = bitcast <16 x i1> [[B]] to i16
-#[no_mangle]
-pub fn lower_while_ascii(s: &str) -> (alloc::string::String, &str) {
-    alloc::str::convert_while_ascii(s, u8::to_ascii_lowercase)
-}
diff --git a/tests/codegen/issues/issue-126585.rs b/tests/codegen/issues/issue-126585.rs
deleted file mode 100644
index 466dab64cdc..00000000000
--- a/tests/codegen/issues/issue-126585.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-//@ compile-flags: -Copt-level=s
-//@ only-x86_64
-
-// Test for #126585.
-// Ensure that this IR doesn't have extra undef phi input, which also guarantees that this asm
-// doesn't have subsequent labels and unnecessary `jmp` instructions.
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-fn checked_div_round(a: u64, b: u64) -> Option<u64> {
-    // CHECK-LABEL: @checked_div_round
-    // CHECK: phi
-    // CHECK-NOT: undef
-    // CHECK: phi
-    // CHECK-NOT: undef
-    match b {
-        0 => None,
-        1 => Some(a),
-        // `a / b` is computable and `(a % b) * 2` can not overflow since `b >= 2`.
-        b => Some(a / b + if (a % b) * 2 >= b { 1 } else { 0 }),
-    }
-}
diff --git a/tests/codegen/issues/issue-129795.rs b/tests/codegen/issues/issue-129795.rs
deleted file mode 100644
index dc64ee35c97..00000000000
--- a/tests/codegen/issues/issue-129795.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//@ min-llvm-version: 20
-#![crate_type = "lib"]
-
-// Ensure that a modulo operation with an operand that is known to be
-// a power-of-two is properly optimized.
-
-// CHECK-LABEL: @modulo_with_power_of_two_divisor
-// CHECK: add i64 %divisor, -1
-// CHECK-NEXT: and i64
-// CHECK-NEXT: ret i64
-#[no_mangle]
-pub fn modulo_with_power_of_two_divisor(dividend: u64, divisor: u64) -> u64 {
-    assert!(divisor.is_power_of_two());
-    // should be optimized to (dividend & (divisor - 1))
-    dividend % divisor
-}
diff --git a/tests/codegen/issues/issue-13018.rs b/tests/codegen/issues/issue-13018.rs
deleted file mode 100644
index 8040018b931..00000000000
--- a/tests/codegen/issues/issue-13018.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-// A drop([...].clone()) sequence on an Rc should be a no-op
-// In particular, no call to __rust_dealloc should be emitted
-//
-// We use a cdylib since it's a leaf unit for Rust purposes, so doesn't codegen -Zshare-generics
-// code.
-#![crate_type = "cdylib"]
-use std::rc::Rc;
-
-pub fn foo(t: &Rc<Vec<usize>>) {
-    // CHECK-NOT: __rust_dealloc
-    drop(t.clone());
-}
diff --git a/tests/codegen/issues/issue-136329-optnone-noinline.rs b/tests/codegen/issues/issue-136329-optnone-noinline.rs
deleted file mode 100644
index 57c9e47a499..00000000000
--- a/tests/codegen/issues/issue-136329-optnone-noinline.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-//! Ensure that `#[optimize(none)]` functions are never inlined
-
-//@ compile-flags: -Copt-level=3
-
-#![feature(optimize_attribute)]
-
-#[optimize(none)]
-pub fn foo() {
-    let _x = 123;
-}
-
-// CHECK-LABEL: define{{.*}}void @bar
-// CHECK: start:
-// CHECK: {{.*}}call {{.*}}void
-// CHECK: ret void
-#[no_mangle]
-pub fn bar() {
-    foo();
-}
-
-fn main() {}
diff --git a/tests/codegen/issues/issue-15953.rs b/tests/codegen/issues/issue-15953.rs
deleted file mode 100644
index 70e597ac1dd..00000000000
--- a/tests/codegen/issues/issue-15953.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Test that llvm generates `memcpy` for moving a value
-// inside a function and moving an argument.
-
-struct Foo {
-    x: Vec<i32>,
-}
-
-#[inline(never)]
-#[no_mangle]
-// CHECK: memcpy
-fn interior(x: Vec<i32>) -> Vec<i32> {
-    let Foo { x } = Foo { x };
-    x
-}
-
-#[inline(never)]
-#[no_mangle]
-// CHECK: memcpy
-fn exterior(x: Vec<i32>) -> Vec<i32> {
-    x
-}
-
-fn main() {
-    let x = interior(Vec::new());
-    println!("{:?}", x);
-
-    let x = exterior(Vec::new());
-    println!("{:?}", x);
-}
diff --git a/tests/codegen/issues/issue-27130.rs b/tests/codegen/issues/issue-27130.rs
deleted file mode 100644
index 594e02af097..00000000000
--- a/tests/codegen/issues/issue-27130.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @trim_in_place
-#[no_mangle]
-pub fn trim_in_place(a: &mut &[u8]) {
-    while a.first() == Some(&42) {
-        // CHECK-NOT: slice_index_order_fail
-        *a = &a[1..];
-    }
-}
-
-// CHECK-LABEL: @trim_in_place2
-#[no_mangle]
-pub fn trim_in_place2(a: &mut &[u8]) {
-    while let Some(&42) = a.first() {
-        // CHECK-NOT: slice_index_order_fail
-        *a = &a[2..];
-    }
-}
diff --git a/tests/codegen/issues/issue-32031.rs b/tests/codegen/issues/issue-32031.rs
deleted file mode 100644
index 559e8d947fb..00000000000
--- a/tests/codegen/issues/issue-32031.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-//@ compile-flags: -C no-prepopulate-passes -Copt-level=0
-// 32-bit x86 returns `f32` and `f64` differently to avoid the x87 stack.
-//@ revisions: x86 other
-//@[x86] only-rustc_abi-x86-sse2
-//@[other] ignore-x86
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub struct F32(f32);
-
-// other: define{{.*}}float @add_newtype_f32(float %a, float %b)
-// x86: define{{.*}}<4 x i8> @add_newtype_f32(float %a, float %b)
-#[inline(never)]
-#[no_mangle]
-pub fn add_newtype_f32(a: F32, b: F32) -> F32 {
-    F32(a.0 + b.0)
-}
-
-#[no_mangle]
-pub struct F64(f64);
-
-// other: define{{.*}}double @add_newtype_f64(double %a, double %b)
-// x86: define{{.*}}<8 x i8> @add_newtype_f64(double %a, double %b)
-#[inline(never)]
-#[no_mangle]
-pub fn add_newtype_f64(a: F64, b: F64) -> F64 {
-    F64(a.0 + b.0)
-}
diff --git a/tests/codegen/issues/issue-32364.rs b/tests/codegen/issues/issue-32364.rs
deleted file mode 100644
index 016981d1947..00000000000
--- a/tests/codegen/issues/issue-32364.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Test that `extern "stdcall"` is properly translated.
-
-//@ only-x86
-
-//@ compile-flags: -C no-prepopulate-passes
-
-struct Foo;
-
-impl Foo {
-    // CHECK: define internal x86_stdcallcc void @{{.*}}foo{{.*}}()
-    #[inline(never)]
-    pub extern "stdcall" fn foo<T>() {}
-}
-
-fn main() {
-    Foo::foo::<Foo>();
-}
diff --git a/tests/codegen/issues/issue-34634.rs b/tests/codegen/issues/issue-34634.rs
deleted file mode 100644
index d32fa97ec38..00000000000
--- a/tests/codegen/issues/issue-34634.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Test that `wrapping_div` only checks divisor once.
-// This test checks that there is only a single compare against -1 and -1 is not present as a
-// switch case (the second check present until rustc 1.12).
-// This test also verifies that a single panic call is generated (for the division by zero case).
-
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @f
-#[no_mangle]
-pub fn f(x: i32, y: i32) -> i32 {
-    // CHECK-COUNT-1: icmp eq i32 %y, -1
-    // CHECK-COUNT-1: panic
-    // CHECK-NOT: i32 -1, label
-    x.wrapping_div(y)
-}
diff --git a/tests/codegen/issues/issue-34947-pow-i32.rs b/tests/codegen/issues/issue-34947-pow-i32.rs
deleted file mode 100644
index b4750cd35bc..00000000000
--- a/tests/codegen/issues/issue-34947-pow-i32.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @issue_34947
-#[no_mangle]
-pub fn issue_34947(x: i32) -> i32 {
-    // CHECK: mul
-    // CHECK-NEXT: mul
-    // CHECK-NEXT: mul
-    // CHECK-NEXT: ret
-    x.pow(5)
-}
diff --git a/tests/codegen/issues/issue-36010-some-box-is_some.rs b/tests/codegen/issues/issue-36010-some-box-is_some.rs
deleted file mode 100644
index c9a8262162d..00000000000
--- a/tests/codegen/issues/issue-36010-some-box-is_some.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-#![crate_type = "lib"]
-
-//@ compile-flags: -Copt-level=3
-
-use std::mem;
-
-fn foo<T>(a: &mut T, b: T) -> bool {
-    let b = Some(mem::replace(a, b));
-    let ret = b.is_some();
-    mem::forget(b);
-    return ret;
-}
-
-// CHECK-LABEL: @foo_u32
-// CHECK: store i32
-// CHECK-NEXT: ret i1 true
-#[no_mangle]
-pub fn foo_u32(a: &mut u32, b: u32) -> bool {
-    foo(a, b)
-}
-
-// CHECK-LABEL: @foo_box
-// CHECK: store ptr
-// CHECK-NEXT: ret i1 true
-#[no_mangle]
-pub fn foo_box(a: &mut Box<u32>, b: Box<u32>) -> bool {
-    foo(a, b)
-}
diff --git a/tests/codegen/issues/issue-37945.rs b/tests/codegen/issues/issue-37945.rs
deleted file mode 100644
index 23d0eab8ae4..00000000000
--- a/tests/codegen/issues/issue-37945.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-//@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
-//@ ignore-32bit LLVM has a bug with them
-
-// Check that LLVM understands that `Iter` pointer is not null. Issue #37945.
-
-#![crate_type = "lib"]
-
-use std::slice::Iter;
-
-#[no_mangle]
-pub fn is_empty_1(xs: Iter<f32>) -> bool {
-    // CHECK-LABEL: @is_empty_1(
-    // CHECK-NEXT:  start:
-    // CHECK-NEXT:    [[A:%.*]] = icmp ne ptr {{%xs.0|%xs.1}}, null
-    // CHECK-NEXT:    tail call void @llvm.assume(i1 [[A]])
-    // The order between %xs.0 and %xs.1 on the next line doesn't matter
-    // and different LLVM versions produce different order.
-    // CHECK-NEXT:    [[B:%.*]] = icmp eq ptr {{%xs.0, %xs.1|%xs.1, %xs.0}}
-    // CHECK-NEXT:    ret i1 [[B:%.*]]
-    { xs }.next().is_none()
-}
-
-#[no_mangle]
-pub fn is_empty_2(xs: Iter<f32>) -> bool {
-    // CHECK-LABEL: @is_empty_2
-    // CHECK-NEXT:  start:
-    // CHECK-NEXT:    [[C:%.*]] = icmp ne ptr {{%xs.0|%xs.1}}, null
-    // CHECK-NEXT:    tail call void @llvm.assume(i1 [[C]])
-    // The order between %xs.0 and %xs.1 on the next line doesn't matter
-    // and different LLVM versions produce different order.
-    // CHECK-NEXT:    [[D:%.*]] = icmp eq ptr {{%xs.0, %xs.1|%xs.1, %xs.0}}
-    // CHECK-NEXT:    ret i1 [[D:%.*]]
-    xs.map(|&x| x).next().is_none()
-}
diff --git a/tests/codegen/issues/issue-45222.rs b/tests/codegen/issues/issue-45222.rs
deleted file mode 100644
index 0201363c41a..00000000000
--- a/tests/codegen/issues/issue-45222.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// verify that LLVM recognizes a loop involving 0..=n and will const-fold it.
-
-// Example from original issue #45222
-
-fn foo2(n: u64) -> u64 {
-    let mut count = 0;
-    for _ in 0..n {
-        for j in (0..=n).rev() {
-            count += j;
-        }
-    }
-    count
-}
-
-// CHECK-LABEL: @check_foo2
-#[no_mangle]
-pub fn check_foo2() -> u64 {
-    // CHECK: ret i64 500005000000000
-    foo2(100000)
-}
-
-// Simplified example of #45222
-//
-// Temporarily disabled in #68835 to fix a soundness hole.
-//
-// fn triangle_inc(n: u64) -> u64 {
-//     let mut count = 0;
-//     for j in 0 ..= n {
-//         count += j;
-//     }
-//     count
-// }
-//
-// // COMMENTEDCHECK-LABEL: @check_triangle_inc
-// #[no_mangle]
-// pub fn check_triangle_inc() -> u64 {
-//     // COMMENTEDCHECK: ret i64 5000050000
-//     triangle_inc(100000)
-// }
-
-// Demo in #48012
-
-fn foo3r(n: u64) -> u64 {
-    let mut count = 0;
-    (0..n).for_each(|_| {
-        (0..=n).rev().for_each(|j| {
-            count += j;
-        })
-    });
-    count
-}
-
-// CHECK-LABEL: @check_foo3r
-#[no_mangle]
-pub fn check_foo3r() -> u64 {
-    // CHECK: ret i64 500050000000
-    foo3r(10000)
-}
diff --git a/tests/codegen/issues/issue-45466.rs b/tests/codegen/issues/issue-45466.rs
deleted file mode 100644
index 164a27ef5d4..00000000000
--- a/tests/codegen/issues/issue-45466.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "rlib"]
-
-// CHECK-LABEL: @memzero
-// CHECK-NOT: store
-// CHECK: call void @llvm.memset
-// CHECK-NOT: store
-#[no_mangle]
-pub fn memzero(data: &mut [u8]) {
-    for i in 0..data.len() {
-        data[i] = 0;
-    }
-}
diff --git a/tests/codegen/issues/issue-45964-bounds-check-slice-pos.rs b/tests/codegen/issues/issue-45964-bounds-check-slice-pos.rs
deleted file mode 100644
index a48bb2a1ccf..00000000000
--- a/tests/codegen/issues/issue-45964-bounds-check-slice-pos.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-// This test case checks that slice::{r}position functions do not
-// prevent optimizing away bounds checks
-
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "rlib"]
-
-// CHECK-LABEL: @test
-#[no_mangle]
-pub fn test(y: &[u32], x: &u32, z: &u32) -> bool {
-    let result = match y.iter().position(|a| a == x) {
-        Some(p) => Ok(p),
-        None => Err(()),
-    };
-
-    if let Ok(p) = result {
-        // CHECK-NOT: panic
-        y[p] == *z
-    } else {
-        false
-    }
-}
-
-// CHECK-LABEL: @rtest
-#[no_mangle]
-pub fn rtest(y: &[u32], x: &u32, z: &u32) -> bool {
-    let result = match y.iter().rposition(|a| a == x) {
-        Some(p) => Ok(p),
-        None => Err(()),
-    };
-
-    if let Ok(p) = result {
-        // CHECK-NOT: panic
-        y[p] == *z
-    } else {
-        false
-    }
-}
diff --git a/tests/codegen/issues/issue-47278.rs b/tests/codegen/issues/issue-47278.rs
deleted file mode 100644
index 4f0a5bdf36f..00000000000
--- a/tests/codegen/issues/issue-47278.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// -C no-prepopulate-passes
-#![crate_type = "staticlib"]
-
-#[repr(C)]
-pub struct Foo(u64);
-
-// CHECK: define {{.*}} @foo(
-#[no_mangle]
-pub extern "C" fn foo(_: Foo) -> Foo {
-    loop {}
-}
diff --git a/tests/codegen/issues/issue-47442.rs b/tests/codegen/issues/issue-47442.rs
deleted file mode 100644
index 445234e55ad..00000000000
--- a/tests/codegen/issues/issue-47442.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-// check that we don't emit unneeded `resume` cleanup blocks for every
-// destructor.
-
-// CHECK-NOT: Unwind
-
-#![feature(test)]
-#![crate_type = "rlib"]
-
-extern crate test;
-
-struct Foo {}
-
-impl Drop for Foo {
-    fn drop(&mut self) {
-        test::black_box(());
-    }
-}
-
-#[no_mangle]
-pub fn foo() {
-    let _foo = Foo {};
-}
diff --git a/tests/codegen/issues/issue-56267-2.rs b/tests/codegen/issues/issue-56267-2.rs
deleted file mode 100644
index 98e3732777e..00000000000
--- a/tests/codegen/issues/issue-56267-2.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ compile-flags: -C no-prepopulate-passes
-
-#![crate_type = "rlib"]
-
-#[allow(dead_code)]
-pub struct Foo<T> {
-    foo: u64,
-    bar: T,
-}
-
-// The load from bar.1 should have alignment 4. Not checking
-// other loads here, as the alignment will be platform-dependent.
-
-// CHECK: %{{.+}} = load i32, ptr %{{.+}}, align 4
-#[no_mangle]
-pub fn test(x: Foo<(i32, i32)>) -> (i32, i32) {
-    x.bar
-}
diff --git a/tests/codegen/issues/issue-56267.rs b/tests/codegen/issues/issue-56267.rs
deleted file mode 100644
index cabcc298482..00000000000
--- a/tests/codegen/issues/issue-56267.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ compile-flags: -C no-prepopulate-passes
-
-#![crate_type = "rlib"]
-
-#[allow(dead_code)]
-pub struct Foo<T> {
-    foo: u64,
-    bar: T,
-}
-
-// The store writing to bar.1 should have alignment 4. Not checking
-// other stores here, as the alignment will be platform-dependent.
-
-// CHECK: store i32 [[TMP1:%.+]], ptr [[TMP2:%.+]], align 4
-#[no_mangle]
-pub fn test(x: (i32, i32)) -> Foo<(i32, i32)> {
-    Foo { foo: 0, bar: x }
-}
diff --git a/tests/codegen/issues/issue-56927.rs b/tests/codegen/issues/issue-56927.rs
deleted file mode 100644
index 415ef073e03..00000000000
--- a/tests/codegen/issues/issue-56927.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-//@ compile-flags: -C no-prepopulate-passes
-// 32bit MSVC does not align things properly so we suppress high alignment annotations (#112480)
-//@ ignore-i686-pc-windows-msvc
-//@ ignore-i686-pc-windows-gnu
-
-#![crate_type = "rlib"]
-
-#[repr(align(16))]
-pub struct S {
-    arr: [u32; 4],
-}
-
-// CHECK-LABEL: @test1
-// CHECK: store i32 0, ptr %{{.+}}, align 16
-// CHECK: store i32 1, ptr %{{.+}}, align 4
-// CHECK: store i32 2, ptr %{{.+}}, align 8
-// CHECK: store i32 3, ptr %{{.+}}, align 4
-#[no_mangle]
-pub fn test1(s: &mut S) {
-    s.arr[0] = 0;
-    s.arr[1] = 1;
-    s.arr[2] = 2;
-    s.arr[3] = 3;
-}
-
-// CHECK-LABEL: @test2
-// CHECK: store i32 4, ptr %{{.+}}, align 4
-#[allow(unconditional_panic)]
-#[no_mangle]
-pub fn test2(s: &mut S) {
-    s.arr[usize::MAX / 4 + 1] = 4;
-}
-
-// CHECK-LABEL: @test3
-// CHECK: store i32 5, ptr %{{.+}}, align 4
-#[no_mangle]
-pub fn test3(s: &mut S, i: usize) {
-    s.arr[i] = 5;
-}
-
-// CHECK-LABEL: @test4
-// CHECK: store i32 6, ptr %{{.+}}, align 4
-#[no_mangle]
-pub fn test4(s: &mut S) {
-    s.arr = [6; 4];
-}
diff --git a/tests/codegen/issues/issue-58881.rs b/tests/codegen/issues/issue-58881.rs
deleted file mode 100644
index ba6285f3972..00000000000
--- a/tests/codegen/issues/issue-58881.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-//@ compile-flags: -C no-prepopulate-passes -Copt-level=0
-//
-//@ only-x86_64
-
-#![crate_type = "lib"]
-
-extern "C" {
-    fn variadic_fn(_: i32, ...);
-}
-
-#[repr(C)]
-struct Foo(u8);
-#[repr(C)]
-struct Bar(u64, u64, u64);
-
-// Ensure that emit arguments of the correct type.
-pub unsafe fn test_call_variadic() {
-    // CHECK: call void (i32, ...) @variadic_fn(i32 0, i8 {{.*}}, ptr {{.*}})
-    variadic_fn(0, Foo(0), Bar(0, 0, 0))
-}
diff --git a/tests/codegen/issues/issue-59352.rs b/tests/codegen/issues/issue-59352.rs
deleted file mode 100644
index cb4383d4a30..00000000000
--- a/tests/codegen/issues/issue-59352.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-// This test is a mirror of mir-opt/issues/issue-59352.rs. The LLVM inliner doesn't inline
-// `char::method::is_digit()` and `char::method::to_digit()`, probably because of their size.
-//
-// Currently, the MIR optimizer isn't capable of removing the unreachable panic in this test case.
-// Once the optimizer can do that, mir-opt/issues/issue-59352.rs will need to be updated and this
-// test case should be removed as it will become redundant.
-
-// mir-opt-level=3 enables inlining and enables LLVM to optimize away the unreachable panic call.
-//@ compile-flags: -Copt-level=3 -Z mir-opt-level=3
-
-#![crate_type = "rlib"]
-
-// CHECK-LABEL: @num_to_digit
-#[no_mangle]
-pub fn num_to_digit(num: char) -> u32 {
-    // CHECK-NOT: panic
-    if num.is_digit(8) { num.to_digit(8).unwrap() } else { 0 }
-}
diff --git a/tests/codegen/issues/issue-64219-fn-ptr-call-returning-never-is-noreturn.rs b/tests/codegen/issues/issue-64219-fn-ptr-call-returning-never-is-noreturn.rs
deleted file mode 100644
index 86d020e1751..00000000000
--- a/tests/codegen/issues/issue-64219-fn-ptr-call-returning-never-is-noreturn.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-//! Test for https://github.com/rust-lang/rust/issues/64219
-//! Check if `noreturn` attribute is applied on calls to
-//! function pointers returning `!` (never type).
-
-#![crate_type = "lib"]
-
-extern "C" {
-    static FOO: fn() -> !;
-}
-
-// CHECK-LABEL: @foo
-#[no_mangle]
-pub unsafe fn foo() {
-    // CHECK: call
-    // CHECK-SAME: [[NUM:#[0-9]+$]]
-    FOO();
-}
-
-// CHECK: attributes [[NUM]] = {{{.*}} noreturn {{.*}}}
diff --git a/tests/codegen/issues/issue-68667-unwrap-combinators.rs b/tests/codegen/issues/issue-68667-unwrap-combinators.rs
deleted file mode 100644
index 7f4a32109fe..00000000000
--- a/tests/codegen/issues/issue-68667-unwrap-combinators.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-#![crate_type = "lib"]
-
-//@ compile-flags: -Copt-level=3
-
-// MIR inlining now optimizes this code.
-
-// CHECK-LABEL: @unwrap_combinators
-// CHECK: {{icmp|trunc}}
-// CHECK-NEXT: icmp
-// CHECK-NEXT: select i1
-// CHECK-NEXT: ret i1
-#[no_mangle]
-pub fn unwrap_combinators(a: Option<i32>, b: i32) -> bool {
-    a.map(|t| t >= b).unwrap_or(false)
-}
diff --git a/tests/codegen/issues/issue-69101-bounds-check.rs b/tests/codegen/issues/issue-69101-bounds-check.rs
deleted file mode 100644
index 953b79aa263..00000000000
--- a/tests/codegen/issues/issue-69101-bounds-check.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// Make sure no bounds checks are emitted in the loop when upfront slicing
-// ensures that the slices are big enough.
-// In particular, bounds checks were not always optimized out if the upfront
-// check was for a greater len than the loop requires.
-// (i.e. `already_sliced_no_bounds_check` was not always optimized even when
-// `already_sliced_no_bounds_check_exact` was)
-// CHECK-LABEL: @already_sliced_no_bounds_check
-#[no_mangle]
-pub fn already_sliced_no_bounds_check(a: &[u8], b: &[u8], c: &mut [u8]) {
-    // CHECK: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    let _ = (&a[..2048], &b[..2048], &mut c[..2048]);
-    for i in 0..1024 {
-        c[i] = a[i] ^ b[i];
-    }
-}
-
-// CHECK-LABEL: @already_sliced_no_bounds_check_exact
-#[no_mangle]
-pub fn already_sliced_no_bounds_check_exact(a: &[u8], b: &[u8], c: &mut [u8]) {
-    // CHECK: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    let _ = (&a[..1024], &b[..1024], &mut c[..1024]);
-    for i in 0..1024 {
-        c[i] = a[i] ^ b[i];
-    }
-}
-
-// Make sure we're checking for the right thing: there can be a panic if the slice is too small.
-// CHECK-LABEL: @already_sliced_bounds_check
-#[no_mangle]
-pub fn already_sliced_bounds_check(a: &[u8], b: &[u8], c: &mut [u8]) {
-    // CHECK: slice_end_index_len_fail
-    // CHECK: panic_bounds_check
-    let _ = (&a[..1023], &b[..2048], &mut c[..2048]);
-    for i in 0..1024 {
-        c[i] = a[i] ^ b[i];
-    }
-}
diff --git a/tests/codegen/issues/issue-73031.rs b/tests/codegen/issues/issue-73031.rs
deleted file mode 100644
index 80dea9b5bc2..00000000000
--- a/tests/codegen/issues/issue-73031.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// Test that LLVM can eliminate the unreachable `All::None` branch.
-
-pub enum All {
-    None,
-    Foo,
-    Bar,
-}
-
-// CHECK-LABEL: @issue_73031
-#[no_mangle]
-pub fn issue_73031(a: &mut All, q: i32) -> i32 {
-    *a = if q == 5 { All::Foo } else { All::Bar };
-    match *a {
-        // CHECK-NOT: panic
-        All::None => panic!(),
-        All::Foo => 1,
-        All::Bar => 2,
-    }
-}
diff --git a/tests/codegen/issues/issue-73258.rs b/tests/codegen/issues/issue-73258.rs
deleted file mode 100644
index 936a7554496..00000000000
--- a/tests/codegen/issues/issue-73258.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// Adapted from <https://github.com/rust-lang/rust/issues/73258#issue-637346014>
-
-#[derive(Clone, Copy)]
-#[repr(u8)]
-pub enum Foo {
-    A,
-    B,
-    C,
-    D,
-}
-
-// CHECK-LABEL: @issue_73258(
-#[no_mangle]
-pub unsafe fn issue_73258(ptr: *const Foo) -> Foo {
-    // CHECK-NOT: icmp
-    // CHECK-NOT: call
-    // CHECK-NOT: br
-    // CHECK-NOT: select
-
-    // CHECK: %[[R:.+]] = load i8
-    // CHECK-SAME: !range !
-
-    // CHECK-NOT: icmp
-    // CHECK-NOT: call
-    // CHECK-NOT: br
-    // CHECK-NOT: select
-
-    // CHECK: ret i8 %[[R]]
-
-    // CHECK-NOT: icmp
-    // CHECK-NOT: call
-    // CHECK-NOT: br
-    // CHECK-NOT: select
-    let k: Option<Foo> = Some(ptr.read());
-    return k.unwrap();
-}
diff --git a/tests/codegen/issues/issue-73338-effecient-cmp.rs b/tests/codegen/issues/issue-73338-effecient-cmp.rs
deleted file mode 100644
index 71641a5457b..00000000000
--- a/tests/codegen/issues/issue-73338-effecient-cmp.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-// This test checks that comparison operation
-// generated by #[derive(PartialOrd)]
-// doesn't contain jumps for C enums
-
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[repr(u32)]
-#[derive(Copy, Clone, Eq, PartialEq, PartialOrd)]
-pub enum Foo {
-    Zero,
-    One,
-    Two,
-}
-
-#[no_mangle]
-pub fn compare_less(a: Foo, b: Foo) -> bool {
-    // CHECK-NOT: br {{.*}}
-    a < b
-}
-
-#[no_mangle]
-pub fn compare_le(a: Foo, b: Foo) -> bool {
-    // CHECK-NOT: br {{.*}}
-    a <= b
-}
-
-#[no_mangle]
-pub fn compare_ge(a: Foo, b: Foo) -> bool {
-    // CHECK-NOT: br {{.*}}
-    a >= b
-}
-
-#[no_mangle]
-pub fn compare_greater(a: Foo, b: Foo) -> bool {
-    // CHECK-NOT: br {{.*}}
-    a > b
-}
diff --git a/tests/codegen/issues/issue-73396-bounds-check-after-position.rs b/tests/codegen/issues/issue-73396-bounds-check-after-position.rs
deleted file mode 100644
index 1e2c25babe0..00000000000
--- a/tests/codegen/issues/issue-73396-bounds-check-after-position.rs
+++ /dev/null
@@ -1,70 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// Make sure no bounds checks are emitted when slicing or indexing
-// with an index from `position()` or `rposition()`.
-
-// CHECK-LABEL: @position_slice_to_no_bounds_check
-#[no_mangle]
-pub fn position_slice_to_no_bounds_check(s: &[u8]) -> &[u8] {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().position(|b| *b == b'\\') { &s[..idx] } else { s }
-}
-
-// CHECK-LABEL: @position_slice_from_no_bounds_check
-#[no_mangle]
-pub fn position_slice_from_no_bounds_check(s: &[u8]) -> &[u8] {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().position(|b| *b == b'\\') { &s[idx..] } else { s }
-}
-
-// CHECK-LABEL: @position_index_no_bounds_check
-#[no_mangle]
-pub fn position_index_no_bounds_check(s: &[u8]) -> u8 {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().position(|b| *b == b'\\') { s[idx] } else { 42 }
-}
-// CHECK-LABEL: @rposition_slice_to_no_bounds_check
-#[no_mangle]
-pub fn rposition_slice_to_no_bounds_check(s: &[u8]) -> &[u8] {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().rposition(|b| *b == b'\\') { &s[..idx] } else { s }
-}
-
-// CHECK-LABEL: @rposition_slice_from_no_bounds_check
-#[no_mangle]
-pub fn rposition_slice_from_no_bounds_check(s: &[u8]) -> &[u8] {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().rposition(|b| *b == b'\\') { &s[idx..] } else { s }
-}
-
-// CHECK-LABEL: @rposition_index_no_bounds_check
-#[no_mangle]
-pub fn rposition_index_no_bounds_check(s: &[u8]) -> u8 {
-    // CHECK-NOT: panic
-    // CHECK-NOT: slice_start_index_len_fail
-    // CHECK-NOT: slice_end_index_len_fail
-    // CHECK-NOT: panic_bounds_check
-    // CHECK-NOT: unreachable
-    if let Some(idx) = s.iter().rposition(|b| *b == b'\\') { s[idx] } else { 42 }
-}
diff --git a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
deleted file mode 100644
index e9dd0d1bf23..00000000000
--- a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-// This test checks that bounds checks are elided when
-// index is part of a (x | y) < C style condition
-
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @get
-#[no_mangle]
-pub fn get(array: &[u8; 8], x: usize, y: usize) -> u8 {
-    if x > 7 || y > 7 {
-        0
-    } else {
-        // CHECK-NOT: panic_bounds_check
-        array[y]
-    }
-}
diff --git a/tests/codegen/issues/issue-74938-array-split-at.rs b/tests/codegen/issues/issue-74938-array-split-at.rs
deleted file mode 100644
index 9d3e23d642b..00000000000
--- a/tests/codegen/issues/issue-74938-array-split-at.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-const N: usize = 3;
-pub type T = u8;
-
-// CHECK-LABEL: @split_multiple
-// CHECK-NOT: unreachable
-#[no_mangle]
-pub fn split_multiple(slice: &[T]) -> (&[T], &[T]) {
-    let len = slice.len() / N;
-    slice.split_at(len * N)
-}
diff --git a/tests/codegen/issues/issue-75525-bounds-checks.rs b/tests/codegen/issues/issue-75525-bounds-checks.rs
deleted file mode 100644
index 5dfbd350010..00000000000
--- a/tests/codegen/issues/issue-75525-bounds-checks.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Regression test for #75525, verifies that no bounds checks are generated.
-
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @f0
-// CHECK-NOT: panic
-#[no_mangle]
-pub fn f0(idx: usize, buf: &[u8; 10]) -> u8 {
-    if idx < 8 { buf[idx + 1] } else { 0 }
-}
-
-// CHECK-LABEL: @f1
-// CHECK-NOT: panic
-#[no_mangle]
-pub fn f1(idx: usize, buf: &[u8; 10]) -> u8 {
-    if idx > 5 && idx < 8 { buf[idx - 1] } else { 0 }
-}
-
-// CHECK-LABEL: @f2
-// CHECK-NOT: panic
-#[no_mangle]
-pub fn f2(idx: usize, buf: &[u8; 10]) -> u8 {
-    if idx > 5 && idx < 8 { buf[idx] } else { 0 }
-}
diff --git a/tests/codegen/issues/issue-75546.rs b/tests/codegen/issues/issue-75546.rs
deleted file mode 100644
index 1e1e6543a88..00000000000
--- a/tests/codegen/issues/issue-75546.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// Test that LLVM can eliminate the impossible `i == 0` check.
-
-// CHECK-LABEL: @issue_75546
-#[no_mangle]
-pub fn issue_75546() {
-    let mut i = 1u32;
-    while i < u32::MAX {
-        // CHECK-NOT: panic
-        if i == 0 {
-            panic!();
-        }
-        i += 1;
-    }
-}
diff --git a/tests/codegen/issues/issue-75659.rs b/tests/codegen/issues/issue-75659.rs
deleted file mode 100644
index 0960bfdb6b0..00000000000
--- a/tests/codegen/issues/issue-75659.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-// This test checks that the call to memchr/slice_contains is optimized away
-// when searching in small slices.
-
-//@ compile-flags: -Copt-level=3 -Zinline-mir=false
-//@ only-x86_64
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @foo1
-#[no_mangle]
-pub fn foo1(x: u8, data: &[u8; 1]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    data.contains(&x)
-}
-
-// CHECK-LABEL: @foo2
-#[no_mangle]
-pub fn foo2(x: u8, data: &[u8; 2]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    data.contains(&x)
-}
-
-// CHECK-LABEL: @foo3
-#[no_mangle]
-pub fn foo3(x: u8, data: &[u8; 3]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    data.contains(&x)
-}
-
-// CHECK-LABEL: @foo4
-#[no_mangle]
-pub fn foo4(x: u8, data: &[u8; 4]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    data.contains(&x)
-}
-
-// CHECK-LABEL: @foo8
-#[no_mangle]
-pub fn foo8(x: u8, data: &[u8; 8]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    data.contains(&x)
-}
-
-// CHECK-LABEL: @foo8_i8
-#[no_mangle]
-pub fn foo8_i8(x: i8, data: &[i8; 8]) -> bool {
-    // CHECK-NOT: memchr
-    // CHECK-NOT: slice_contains
-    !data.contains(&x)
-}
-
-// Check that the general case isn't inlined
-// CHECK-LABEL: @foo80
-#[no_mangle]
-pub fn foo80(x: u8, data: &[u8; 80]) -> bool {
-    // CHECK: call core::slice::memchr
-    data.contains(&x)
-}
diff --git a/tests/codegen/issues/issue-75978.rs b/tests/codegen/issues/issue-75978.rs
deleted file mode 100644
index f4b0bc36329..00000000000
--- a/tests/codegen/issues/issue-75978.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test() -> u32 {
-    // CHECK-LABEL: @test(
-    // CHECK: ret i32 13
-    let s = [1, 2, 3, 4, 5, 6, 7];
-
-    let mut iter = s.iter();
-    let mut sum = 0;
-    while let Some(_) = iter.next() {
-        sum += iter.next().map_or(1, |&x| x)
-    }
-
-    sum
-}
diff --git a/tests/codegen/issues/issue-77812.rs b/tests/codegen/issues/issue-77812.rs
deleted file mode 100644
index 09e2376c30d..00000000000
--- a/tests/codegen/issues/issue-77812.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-//@ compile-flags: -Copt-level=3
-#![crate_type = "lib"]
-
-// Test that LLVM can eliminate the unreachable `Variant::Zero` branch.
-
-#[derive(Copy, Clone, Eq, PartialEq)]
-pub enum Variant {
-    Zero,
-    One,
-    Two,
-}
-
-extern "C" {
-    fn exf1();
-    fn exf2();
-}
-
-pub static mut GLOBAL: Variant = Variant::Zero;
-
-// CHECK-LABEL: @issue_77812
-#[no_mangle]
-pub unsafe fn issue_77812() {
-    let g = GLOBAL;
-    if g != Variant::Zero {
-        match g {
-            Variant::One => exf1(),
-            Variant::Two => exf2(),
-            // CHECK-NOT: panic
-            Variant::Zero => panic!(),
-        }
-    }
-}
diff --git a/tests/codegen/issues/issue-84268.rs b/tests/codegen/issues/issue-84268.rs
deleted file mode 100644
index 1dc55a909ad..00000000000
--- a/tests/codegen/issues/issue-84268.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ compile-flags: -Copt-level=3 --crate-type=rlib
-#![feature(core_intrinsics, repr_simd)]
-
-use std::intrinsics::simd::{simd_eq, simd_fabs};
-
-#[repr(simd)]
-pub struct V([f32; 4]);
-
-#[repr(simd)]
-pub struct M([i32; 4]);
-
-#[no_mangle]
-// CHECK-LABEL: @is_infinite
-pub fn is_infinite(v: V) -> M {
-    // CHECK: fabs
-    // CHECK: cmp oeq
-    unsafe { simd_eq(simd_fabs(v), V([f32::INFINITY; 4])) }
-}
diff --git a/tests/codegen/issues/issue-85872-multiple-reverse.rs b/tests/codegen/issues/issue-85872-multiple-reverse.rs
deleted file mode 100644
index 6f566ddee6b..00000000000
--- a/tests/codegen/issues/issue-85872-multiple-reverse.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn u16_be_to_arch(mut data: [u8; 2]) -> [u8; 2] {
-    // CHECK-LABEL: @u16_be_to_arch
-    // CHECK: @llvm.bswap.i16
-    data.reverse();
-    data
-}
-
-#[no_mangle]
-pub fn u32_be_to_arch(mut data: [u8; 4]) -> [u8; 4] {
-    // CHECK-LABEL: @u32_be_to_arch
-    // CHECK: @llvm.bswap.i32
-    data.reverse();
-    data
-}
diff --git a/tests/codegen/issues/issue-86106.rs b/tests/codegen/issues/issue-86106.rs
deleted file mode 100644
index 8d1ce116d26..00000000000
--- a/tests/codegen/issues/issue-86106.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-//@ only-64bit llvm appears to use stores instead of memset on 32bit
-//@ compile-flags: -C opt-level=3 -Z merge-functions=disabled
-//@ needs-deterministic-layouts
-
-// The below two functions ensure that both `String::new()` and `"".to_string()`
-// produce the identical code.
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: define {{(dso_local )?}}void @string_new
-#[no_mangle]
-pub fn string_new() -> String {
-    // CHECK-NOT: load i8
-    // CHECK: store i{{32|64}}
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store ptr
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store i{{32|64}}
-    // CHECK-NEXT: ret void
-    String::new()
-}
-
-// CHECK-LABEL: define {{(dso_local )?}}void @empty_to_string
-#[no_mangle]
-pub fn empty_to_string() -> String {
-    // CHECK-NOT: load i8
-    // CHECK: store i{{32|64}}
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store ptr
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store i{{32|64}}
-    // CHECK-NEXT: ret void
-    "".to_string()
-}
-
-// The below two functions ensure that both `vec![]` and `vec![].clone()`
-// produce the identical code.
-
-// CHECK-LABEL: @empty_vec
-#[no_mangle]
-pub fn empty_vec() -> Vec<u8> {
-    // CHECK: store i{{32|64}}
-    // CHECK-NOT: load i8
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store ptr
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store i{{32|64}}
-    // CHECK-NEXT: ret void
-    vec![]
-}
-
-// CHECK-LABEL: @empty_vec_clone
-#[no_mangle]
-pub fn empty_vec_clone() -> Vec<u8> {
-    // CHECK: store i{{32|64}}
-    // CHECK-NOT: load i8
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store ptr
-    // CHECK-NEXT: getelementptr
-    // CHECK-NEXT: store i{{32|64}}
-    // CHECK-NEXT: ret void
-    vec![].clone()
-}
diff --git a/tests/codegen/issues/issue-86109-eliminate-div-by-zero-check.rs b/tests/codegen/issues/issue-86109-eliminate-div-by-zero-check.rs
deleted file mode 100644
index 345c09738b6..00000000000
--- a/tests/codegen/issues/issue-86109-eliminate-div-by-zero-check.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//! Test for https://github.com/rust-lang/rust/issues/86109
-//! Check LLVM can eliminate the impossible division by zero check by
-//! ensuring there is no call (to panic) instruction.
-//!
-//! This has been fixed since `rustc 1.70.0`.
-
-#![crate_type = "lib"]
-
-type T = i16;
-
-// CHECK-LABEL: @foo
-#[no_mangle]
-pub fn foo(start: T) -> T {
-    // CHECK-NOT: panic
-    if start <= 0 {
-        return 0;
-    }
-    let mut count = 0;
-    for i in start..10_000 {
-        if 752 % i != 0 {
-            count += 1;
-        }
-    }
-    count
-}
diff --git a/tests/codegen/issues/issue-93036-assert-index.rs b/tests/codegen/issues/issue-93036-assert-index.rs
deleted file mode 100644
index 46f45c2f06e..00000000000
--- a/tests/codegen/issues/issue-93036-assert-index.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-// CHECK-LABEL: @foo
-// CHECK-NOT: unreachable
-pub fn foo(arr: &mut [u32]) {
-    for i in 0..arr.len() {
-        for j in 0..i {
-            assert!(j < arr.len());
-        }
-    }
-}
diff --git a/tests/codegen/issues/issue-96274.rs b/tests/codegen/issues/issue-96274.rs
deleted file mode 100644
index 2425ec53e4e..00000000000
--- a/tests/codegen/issues/issue-96274.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-use std::mem::MaybeUninit;
-
-pub fn maybe_uninit() -> [MaybeUninit<u8>; 3000] {
-    // CHECK-NOT: memset
-    [MaybeUninit::uninit(); 3000]
-}
-
-pub fn maybe_uninit_const<T>() -> [MaybeUninit<T>; 8192] {
-    // CHECK-NOT: memset
-    [const { MaybeUninit::uninit() }; 8192]
-}
diff --git a/tests/codegen/issues/issue-96497-slice-size-nowrap.rs b/tests/codegen/issues/issue-96497-slice-size-nowrap.rs
deleted file mode 100644
index 7b3a20a295e..00000000000
--- a/tests/codegen/issues/issue-96497-slice-size-nowrap.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-// This test case checks that LLVM is aware that computing the size of a slice cannot wrap.
-// The possibility of wrapping results in an additional branch when dropping boxed slices
-// in some situations, see https://github.com/rust-lang/rust/issues/96497#issuecomment-1112865218
-
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @simple_size_of_nowrap
-#[no_mangle]
-pub fn simple_size_of_nowrap(x: &[u32]) -> usize {
-    // Make sure the shift used to compute the size has a nowrap flag.
-
-    // CHECK: [[A:%.*]] = shl nuw nsw {{.*}}, 2
-    // CHECK-NEXT: ret {{.*}} [[A]]
-    core::mem::size_of_val(x)
-}
-
-// CHECK-LABEL: @drop_write
-#[no_mangle]
-pub fn drop_write(mut x: Box<[u32]>) {
-    // Check that this write is optimized out.
-    // This depends on the size calculation not wrapping,
-    // since otherwise LLVM can't tell that the memory is always deallocated if the slice len > 0.
-
-    // CHECK-NOT: store i32 42
-    x[1] = 42;
-}
-
-// CHECK-LABEL: @slice_size_plus_2
-#[no_mangle]
-pub fn slice_size_plus_2(x: &[u16]) -> usize {
-    // Before #136575 this didn't get the `nuw` in the add.
-
-    // CHECK: [[BYTES:%.+]] = shl nuw nsw {{i16|i32|i64}} %x.1, 1
-    // CHECK: = add nuw {{i16|i32|i64}} [[BYTES]], 2
-    core::mem::size_of_val(x) + 2
-}
diff --git a/tests/codegen/issues/issue-98294-get-mut-copy-from-slice-opt.rs b/tests/codegen/issues/issue-98294-get-mut-copy-from-slice-opt.rs
deleted file mode 100644
index 76adcf9fd45..00000000000
--- a/tests/codegen/issues/issue-98294-get-mut-copy-from-slice-opt.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-// There should be no calls to panic / len_mismatch_fail.
-
-#[no_mangle]
-pub fn test(a: &mut [u8], offset: usize, bytes: &[u8]) {
-    // CHECK-LABEL: @test(
-    // CHECK-NOT: call
-    // CHECK: call void @llvm.memcpy
-    // CHECK-NOT: call
-    // CHECK: }
-    if let Some(dst) = a.get_mut(offset..offset + bytes.len()) {
-        dst.copy_from_slice(bytes);
-    }
-}
diff --git a/tests/codegen/issues/issue-98678-async.rs b/tests/codegen/issues/issue-98678-async.rs
deleted file mode 100644
index 3dd06bb5194..00000000000
--- a/tests/codegen/issues/issue-98678-async.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// ignore-tidy-linelength
-//! This test verifies the accuracy of emitted file and line debuginfo metadata for async blocks and
-//! async functions.
-
-//@ revisions: MSVC NONMSVC
-//@[MSVC] only-msvc
-//@[NONMSVC] ignore-msvc
-//@ edition:2021
-//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
-
-// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-async.rs{{".*}})
-// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-async.rs{{".*}})
-
-// NONMSVC-DAG: !DISubprogram(name: "foo",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-// MSVC-DAG: !DISubprogram(name: "foo",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub async fn foo() -> u8 {
-    5
-}
-
-pub fn bar() -> impl std::future::Future<Output = u8> {
-    // NONMSVC: !DICompositeType({{.*"}}{async_block_env#0}{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // MSVC-DAG: !DICompositeType({{.*"}}enum2$<issue_98678_async::bar::async_block_env$0>{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    async {
-        let x: u8 = foo().await;
-        x + 5
-    }
-}
diff --git a/tests/codegen/issues/issue-98678-closure-coroutine.rs b/tests/codegen/issues/issue-98678-closure-coroutine.rs
deleted file mode 100644
index 8763bcb799d..00000000000
--- a/tests/codegen/issues/issue-98678-closure-coroutine.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// ignore-tidy-linelength
-//! This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
-//! coroutines.
-
-#![feature(coroutines, stmt_expr_attributes)]
-
-//@ revisions: MSVC NONMSVC
-//@[MSVC] only-msvc
-//@[NONMSVC] ignore-msvc
-//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
-
-// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-closure-coroutine.rs{{".*}})
-// MSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-closure-coroutine.rs{{".*}})
-
-pub fn foo() {
-    // NONMSVC-DAG: !DICompositeType({{.*"}}{closure_env#0}{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // MSVC-DAG: !DICompositeType({{.*"}}closure_env$0{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    let closure = |x| x;
-    closure(0);
-
-    // NONMSVC-DAG: !DICompositeType({{.*"[{]}}coroutine_env#1{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 3]],
-    // MSVC-DAG: !DICompositeType({{.*".*foo::}}coroutine_env$1>{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    let _coroutine = #[coroutine]
-    || yield 1;
-}
diff --git a/tests/codegen/issues/issue-98678-enum.rs b/tests/codegen/issues/issue-98678-enum.rs
deleted file mode 100644
index 87bf8797293..00000000000
--- a/tests/codegen/issues/issue-98678-enum.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-// ignore-tidy-linelength
-//! This test verifies the accuracy of emitted file and line debuginfo metadata enums.
-
-//@ revisions: MSVC NONMSVC
-//@[MSVC] only-msvc
-//@[NONMSVC] ignore-msvc
-//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
-
-// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-enum.rs{{".*}})
-// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-enum.rs{{".*}})
-
-// NONMSVC: !DICompositeType({{.*"}}SingleCase{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-// MSVC: !DICompositeType({{.*"}}enum2$<issue_98678_enum::SingleCase>{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub enum SingleCase {
-    // NONMSVC: !DIDerivedType(tag: DW_TAG_member, name: "One",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "One",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    One,
-}
-
-// NONMSVC: !DICompositeType({{.*"}}MultipleDataCases{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-// MSVC: !DICompositeType({{.*"}}enum2$<issue_98678_enum::MultipleDataCases>{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub enum MultipleDataCases {
-    // NONMSVC: !DIDerivedType(tag: DW_TAG_member, name: "Case1",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Case1",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    Case1(u32),
-    // NONMSVC: !DIDerivedType(tag: DW_TAG_member, name: "Case2",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Case2",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    Case2(i64),
-}
-
-// NONMSVC: !DICompositeType({{.*"}}NicheLayout{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-// MSVC: !DICompositeType({{.*"}}enum2$<issue_98678_enum::NicheLayout>{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub enum NicheLayout {
-    // NONMSVC: !DIDerivedType(tag: DW_TAG_member, name: "Something",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Something",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    Something(&'static u32),
-    // NONMSVC: !DIDerivedType(tag: DW_TAG_member, name: "Nothing",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-    // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Nothing",{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    Nothing,
-}
-
-pub fn foo(_: SingleCase, _: MultipleDataCases, _: NicheLayout) {}
diff --git a/tests/codegen/issues/issue-98678-struct-union.rs b/tests/codegen/issues/issue-98678-struct-union.rs
deleted file mode 100644
index a83a585a433..00000000000
--- a/tests/codegen/issues/issue-98678-struct-union.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// ignore-tidy-linelength
-//! This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
-//! unions.
-
-//@ revisions: MSVC NONMSVC
-//@[MSVC] only-msvc
-//@[NONMSVC] ignore-msvc
-//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
-
-// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-struct-union.rs{{".*}})
-// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-struct-union.rs{{".*}})
-
-// CHECK: !DICompositeType({{.*"}}MyType{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub struct MyType {
-    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    i: i32,
-}
-
-// CHECK: !DICompositeType({{.*"}}MyUnion{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub union MyUnion {
-    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    i: i32,
-    // CHECK: !DIDerivedType({{.*"}}f{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    f: f32,
-}
-
-pub fn foo(_: MyType, _: MyUnion) {}
diff --git a/tests/codegen/issues/issue-99960.rs b/tests/codegen/issues/issue-99960.rs
deleted file mode 100644
index 571a9be967d..00000000000
--- a/tests/codegen/issues/issue-99960.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-//@ compile-flags: -Copt-level=3
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn test(dividend: i64, divisor: i64) -> Option<i64> {
-    // CHECK-LABEL: @test(
-    // CHECK-NOT: panic
-    if dividend > i64::min_value() && divisor != 0 { Some(dividend / divisor) } else { None }
-}
diff --git a/tests/codegen/issues/looping-over-ne-bytes-133528.rs b/tests/codegen/issues/looping-over-ne-bytes-133528.rs
deleted file mode 100644
index 35acf765d69..00000000000
--- a/tests/codegen/issues/looping-over-ne-bytes-133528.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-//@ compile-flags: -Copt-level=3
-//@ min-llvm-version: 20
-#![crate_type = "lib"]
-
-/// Ensure the function is properly optimized
-/// In the issue #133528, the function was not getting optimized
-/// whereas, a version with `bytes` wrapped into a `black_box` was optimized
-/// It was probably a LLVM bug that was fixed in LLVM 20
-
-// CHECK-LABEL: @looping_over_ne_bytes
-// CHECK: icmp eq i64 %input, -1
-// CHECK-NEXT: ret i1
-#[no_mangle]
-fn looping_over_ne_bytes(input: u64) -> bool {
-    let bytes = input.to_ne_bytes();
-    bytes.iter().all(|x| *x == !0)
-}
diff --git a/tests/codegen/issues/str-to-string-128690.rs b/tests/codegen/issues/str-to-string-128690.rs
deleted file mode 100644
index d9e69764be2..00000000000
--- a/tests/codegen/issues/str-to-string-128690.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-//@ compile-flags: -C opt-level=3 -Z merge-functions=disabled
-#![crate_type = "lib"]
-
-//! Make sure str::to_string is specialized not to use fmt machinery.
-//!
-//! Note that the `CHECK-NOT`s here try to match on calls to functions under `core::fmt`.
-
-// CHECK-LABEL: define {{(dso_local )?}}void @one_ref
-#[no_mangle]
-pub fn one_ref(input: &str) -> String {
-    // CHECK-NOT: {{(call|invoke)}}{{.*}}@{{.*}}core{{.*}}fmt{{.*}}
-    input.to_string()
-}
-
-// CHECK-LABEL: define {{(dso_local )?}}void @two_ref
-#[no_mangle]
-pub fn two_ref(input: &&str) -> String {
-    // CHECK-NOT: {{(call|invoke)}}{{.*}}@{{.*}}core{{.*}}fmt{{.*}}
-    input.to_string()
-}
-
-// CHECK-LABEL: define {{(dso_local )?}}void @thirteen_ref
-#[no_mangle]
-pub fn thirteen_ref(input: &&&&&&&&&&&&&str) -> String {
-    // CHECK-NOT: {{(call|invoke)}}{{.*}}@{{.*}}core{{.*}}fmt{{.*}}
-    input.to_string()
-}
-
-// This is a known performance cliff because of the macro-generated
-// specialized impl. If this test suddenly starts failing,
-// consider removing the `to_string_str!` macro in `alloc/str/string.rs`.
-//
-// CHECK-LABEL: define {{(dso_local )?}}void @fourteen_ref
-#[no_mangle]
-pub fn fourteen_ref(input: &&&&&&&&&&&&&&str) -> String {
-    // CHECK: {{(call|invoke)}}{{.*}}@{{.*}}core{{.*}}fmt{{.*}}
-    input.to_string()
-}