add codegen test for #107436
remove trailing whitespace, add trailing newline fix llvm version and function name
This commit is contained in:
parent
c40cfcf049
commit
d88c80f5de
1 changed files with 22 additions and 0 deletions
22
tests/codegen/move-before-nocapture-ref-arg.rs
Normal file
22
tests/codegen/move-before-nocapture-ref-arg.rs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Verify that move before the call of the function with noalias, nocapture, readonly.
|
||||||
|
// #107436
|
||||||
|
// compile-flags: -O
|
||||||
|
// min-llvm-version: 17
|
||||||
|
|
||||||
|
#![crate_type = "lib"]
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
pub struct ThreeSlices<'a>(&'a [u32], &'a [u32], &'a [u32]);
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
pub fn sum_slices(val: ThreeSlices) -> u32 {
|
||||||
|
// CHECK-NOT: memcpy
|
||||||
|
let val = val;
|
||||||
|
sum(&val)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
#[inline(never)]
|
||||||
|
pub fn sum(val: &ThreeSlices) -> u32 {
|
||||||
|
val.0.iter().sum::<u32>() + val.1.iter().sum::<u32>() + val.2.iter().sum::<u32>()
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue