MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / vnarrow64x2_u

Method vnarrow64x2_u

pulley/src/interp.rs:4488–4499  ·  view source on GitHub ↗
(&mut self, operands: BinaryOperands<VReg>)

Source from the content-addressed store, hash-verified

4486
4487 #[interp_disable_if_cfg(pulley_disable_interp_simd)]
4488 fn vnarrow64x2_u(&mut self, operands: BinaryOperands<VReg>) -> ControlFlow<Done> {
4489 let a = self.state[operands.src1].get_i64x2();
4490 let b = self.state[operands.src2].get_i64x2();
4491 let mut result = [0; 4];
4492 for (i, d) in a.iter().chain(&b).zip(&mut result) {
4493 *d = (*i)
4494 .try_into()
4495 .unwrap_or(if *i < 0 { u32::MIN } else { u32::MAX });
4496 }
4497 self.state[operands.dst].set_u32x4(result);
4498 ControlFlow::Continue(())
4499 }
4500
4501 #[interp_disable_if_cfg(pulley_disable_interp_simd)]
4502 fn vunarrow64x2_u(&mut self, operands: BinaryOperands<VReg>) -> ControlFlow<Done> {

Callers

nothing calls this directly

Calls 5

get_i64x2Method · 0.80
chainMethod · 0.80
set_u32x4Method · 0.80
iterMethod · 0.45
try_intoMethod · 0.45

Tested by

no test coverage detected