Skip to content

Commit 569c51d

Browse files
committed
Fix off-by-one error uncovered by std::simd tests
1 parent 3981ca0 commit 569c51d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

compiler/rustc_codegen_llvm/src/intrinsic.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ fn generic_simd_intrinsic(
861861
let (len, _) = arg_tys[1].simd_size_and_type(bx.tcx());
862862

863863
let expected_int_bits = (len.max(8) - 1).next_power_of_two();
864-
let expected_bytes = len / 8 + ((len % 8 > 1) as u64);
864+
let expected_bytes = len / 8 + ((len % 8 > 0) as u64);
865865

866866
let mask_ty = arg_tys[0];
867867
let mask = match mask_ty.kind() {
@@ -1073,7 +1073,7 @@ fn generic_simd_intrinsic(
10731073
// * an array of `u8`
10741074
// If the vector has less than 8 lanes, a u8 is returned with zeroed trailing bits.
10751075
let expected_int_bits = in_len.max(8);
1076-
let expected_bytes = expected_int_bits / 8 + ((expected_int_bits % 8 > 1) as u64);
1076+
let expected_bytes = expected_int_bits / 8 + ((expected_int_bits % 8 > 0) as u64);
10771077

10781078
// Integer vector <i{in_bitwidth} x in_len>:
10791079
let (i_xn, in_elem_bitwidth) = match in_elem.kind() {

0 commit comments

Comments
 (0)