mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
Add autovectorization codegen test
Co-authored-by: Scott McMurray <scottmcm@users.noreply.github.com>
This commit is contained in:
parent
8e985376d4
commit
934345be2a
31
src/test/codegen/autovectorize-f32x4.rs
Normal file
31
src/test/codegen/autovectorize-f32x4.rs
Normal file
@ -0,0 +1,31 @@
|
||||
// compile-flags: -C opt-level=3
|
||||
// only-x86_64
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// CHECK-LABEL: @auto_vectorize_direct
|
||||
#[no_mangle]
|
||||
pub fn auto_vectorize_direct(a: [f32; 4], b: [f32; 4]) -> [f32; 4] {
|
||||
// CHECK: load <4 x float>
|
||||
// CHECK: load <4 x float>
|
||||
// CHECK: fadd <4 x float>
|
||||
// CHECK: store <4 x float>
|
||||
[
|
||||
a[0] + b[0],
|
||||
a[1] + b[1],
|
||||
a[2] + b[2],
|
||||
a[3] + b[3],
|
||||
]
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @auto_vectorize_loop
|
||||
pub fn auto_vectorize_loop(a: [f32; 4], b: [f32; 4]) -> [f32; 4] {
|
||||
// CHECK: load <4 x float>
|
||||
// CHECK: load <4 x float>
|
||||
// CHECK: fadd <4 x float>
|
||||
// CHECK: store <4 x float>
|
||||
let mut c = [0.0; 4];
|
||||
for i in 0..4 {
|
||||
c[i] = a[i] + b[i];
|
||||
}
|
||||
c
|
||||
}
|
Loading…
Reference in New Issue
Block a user