| //! Regression test for #142519 |
| //@ only-x86_64 |
| //@ compile-flags: -O |
| //@ min-llvm-version: 22 |
| |
| #![crate_type = "lib"] |
| |
| // CHECK-LABEL: @mul3 |
| // CHECK: phi <4 x i8> |
| // CHECK: load <4 x i8> |
| // CHECK: add <4 x i8> |
| // CHECK: store <4 x i8> |
| |
| #[no_mangle] |
| pub fn mul3(previous: &[[u8; 4]], current: &mut [[u8; 4]]) { |
| let mut c_bpp = [0u8; 4]; |
| |
| for i in 0..previous.len() { |
| current[i][0] = current[i][0].wrapping_add(c_bpp[0]); |
| current[i][1] = current[i][1].wrapping_add(c_bpp[1]); |
| current[i][2] = current[i][2].wrapping_add(c_bpp[2]); |
| current[i][3] = current[i][3].wrapping_add(c_bpp[3]); |
| |
| c_bpp = previous[i]; |
| } |
| } |