| 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> { |