about summary refs log tree commit diff
path: root/tests/codegen/mem-replace-direct-memcpy.rs
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2023-03-15 00:57:08 -0700
committerScott McMurray <scottmcm@users.noreply.github.com>2023-03-15 00:57:08 -0700
commitdfc3377954f9e03172fed57ca890141006a0d82e (patch)
tree5c274c639dcfc55bb6766c952520f29042eda309 /tests/codegen/mem-replace-direct-memcpy.rs
parente7c6ad89cfd937d741b9d256e950ec0de96a7142 (diff)
downloadrust-dfc3377954f9e03172fed57ca890141006a0d82e.tar.gz
rust-dfc3377954f9e03172fed57ca890141006a0d82e.zip
Split the mem-replace codegen test
Apparently in CI it's getting generated in the opposite order, one function per file will make the test pass either way.
Diffstat (limited to 'tests/codegen/mem-replace-direct-memcpy.rs')
-rw-r--r--tests/codegen/mem-replace-direct-memcpy.rs22
1 files changed, 0 insertions, 22 deletions
diff --git a/tests/codegen/mem-replace-direct-memcpy.rs b/tests/codegen/mem-replace-direct-memcpy.rs
index 3b01a621b56..83babab4f84 100644
--- a/tests/codegen/mem-replace-direct-memcpy.rs
+++ b/tests/codegen/mem-replace-direct-memcpy.rs
@@ -12,33 +12,11 @@ pub fn replace_byte(dst: &mut u8, src: u8) -> u8 {
     std::mem::replace(dst, src)
 }
 
-#[repr(C, align(8))]
-pub struct Big([u64; 7]);
-pub fn replace_big(dst: &mut Big, src: Big) -> Big {
-    // Before the `read_via_copy` intrinsic, this emitted six `memcpy`s.
-    std::mem::replace(dst, src)
-}
-
 // NOTE(eddyb) the `CHECK-NOT`s ensure that the only calls of `@llvm.memcpy` in
 // the entire output, are the direct calls we want, from `ptr::replace`.
 
 // CHECK-NOT: call void @llvm.memcpy
 
-// For a large type, we expect exactly three `memcpy`s
-// CHECK-LABEL: define internal void @{{.+}}mem{{.+}}replace{{.+}}sret(%Big)
-    // CHECK-NOT: alloca
-    // CHECK: alloca %Big
-    // CHECK-NOT: alloca
-    // CHECK-NOT: call void @llvm.memcpy
-    // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 8 %{{.*}}, {{i8\*|ptr}} align 8 %{{.*}}, i{{.*}} 56, i1 false)
-    // CHECK-NOT: call void @llvm.memcpy
-    // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 8 %{{.*}}, {{i8\*|ptr}} align 8 %{{.*}}, i{{.*}} 56, i1 false)
-    // CHECK-NOT: call void @llvm.memcpy
-    // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 8 %{{.*}}, {{i8\*|ptr}} align 8 %{{.*}}, i{{.*}} 56, i1 false)
-    // CHECK-NOT: call void @llvm.memcpy
-
-// CHECK-NOT: call void @llvm.memcpy
-
 // For a small type, we expect one each of `load`/`store`/`memcpy` instead
 // CHECK-LABEL: define internal noundef i8 @{{.+}}mem{{.+}}replace
     // CHECK-NOT: alloca