Merge vector iterators into chain

Copyrght (c) 2021, Arm Limited
This commit is contained in:
dheaton-arm
2021-09-01 15:55:35 +01:00
parent 7a5646c5f4
commit 4cdb2d3dac

View File

@@ -974,14 +974,7 @@ where
let arg0 = extractlanes(&x, vector_type.lane_type())?; let arg0 = extractlanes(&x, vector_type.lane_type())?;
let arg1 = extractlanes(&y, vector_type.lane_type())?; let arg1 = extractlanes(&y, vector_type.lane_type())?;
let mut result = SimdVec::new(); let mut result = SimdVec::new();
for pair in arg0.chunks(2) { for pair in arg0.chunks(2).chain(arg1.chunks(2)) {
let lhs: V = Value::int(pair[0], vector_type.lane_type())?;
let rhs: V = Value::int(pair[1], vector_type.lane_type())?;
let sum = op(lhs, rhs)?;
let sum = sum.into_int()?;
result.push(sum);
}
for pair in arg1.chunks(2) {
let lhs: V = Value::int(pair[0], vector_type.lane_type())?; let lhs: V = Value::int(pair[0], vector_type.lane_type())?;
let rhs: V = Value::int(pair[1], vector_type.lane_type())?; let rhs: V = Value::int(pair[1], vector_type.lane_type())?;
let sum = op(lhs, rhs)?; let sum = op(lhs, rhs)?;