Merge pull request #3279 from dheaton-arm/implement-insertlane

Implement `Insertlane` for the Cranelift interpreter
This commit is contained in:
Chris Fallin
2021-09-02 09:44:59 -07:00
committed by GitHub
3 changed files with 39 additions and 1 deletions

View File

@@ -704,7 +704,11 @@ where
Opcode::Shuffle => unimplemented!("Shuffle"),
Opcode::Swizzle => unimplemented!("Swizzle"),
Opcode::Splat => unimplemented!("Splat"),
Opcode::Insertlane => unimplemented!("Insertlane"),
Opcode::Insertlane => {
let mut vector = extractlanes(&arg(0)?, ctrl_ty.lane_type())?;
vector[Value::into_int(imm())? as usize] = arg(1)?.into_int()?;
assign(vectorizelanes(&vector, ctrl_ty)?)
}
Opcode::Extractlane => {
let value =
extractlanes(&arg(0)?, ctrl_ty.lane_type())?[Value::into_int(imm())? as usize];