From a595bd22e37c509f00a20c313d536fa1b14fc2a5 Mon Sep 17 00:00:00 2001 From: dheaton-arm Date: Thu, 9 Sep 2021 10:34:29 +0100 Subject: [PATCH] Replace loops with iterator methods. Copyright (c) 2021, Arm Limited --- cranelift/interpreter/src/step.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/cranelift/interpreter/src/step.rs b/cranelift/interpreter/src/step.rs index 4a013868e9..78b56dba9f 100644 --- a/cranelift/interpreter/src/step.rs +++ b/cranelift/interpreter/src/step.rs @@ -842,24 +842,20 @@ where )?), Opcode::SwidenLow => { let new_type = ctrl_ty.merge_lanes().unwrap(); - let mut new_vec = SimdVec::new(); - let mut arg0 = extractlanes(&arg(0)?, ctrl_ty.lane_type())?; - arg0.truncate(new_type.lane_count() as usize); - for lane in arg0 { - let lane = lane.convert(ValueConversionKind::SignExtend(new_type.lane_type()))?; - new_vec.push(lane); - } + let new_vec = extractlanes(&arg(0)?, ctrl_ty.lane_type())? + .into_iter() + .take(new_type.lane_count() as usize) + .map(|lane| lane.convert(ValueConversionKind::SignExtend(new_type.lane_type()))) + .collect::>>()?; assign(vectorizelanes(&new_vec, new_type)?) } Opcode::SwidenHigh => { let new_type = ctrl_ty.merge_lanes().unwrap(); - let mut new_vec = SimdVec::new(); - let mut arg0 = extractlanes(&arg(0)?, ctrl_ty.lane_type())?; - arg0.drain(0..new_type.lane_count() as usize); - for lane in arg0 { - let lane = lane.convert(ValueConversionKind::SignExtend(new_type.lane_type()))?; - new_vec.push(lane); - } + let new_vec = extractlanes(&arg(0)?, ctrl_ty.lane_type())? + .into_iter() + .skip(new_type.lane_count() as usize) + .map(|lane| lane.convert(ValueConversionKind::SignExtend(new_type.lane_type()))) + .collect::>>()?; assign(vectorizelanes(&new_vec, new_type)?) } Opcode::UwidenLow => {