# Function miri::shims::x86::conditional_dot_product

source ยท ```
fn conditional_dot_product<'tcx>(
this: &mut MiriInterpCx<'tcx>,
left: &OpTy<'tcx>,
right: &OpTy<'tcx>,
imm: &OpTy<'tcx>,
dest: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, ()>
```

## Expand description

Conditionally multiplies the packed floating-point elements in
`left`

and `right`

using the high 4 bits in `imm`

, sums the calculated
products (up to 4), and conditionally stores the sum in `dest`

using
the low 4 bits of `imm`

.

Each 128-bit chunk is treated independently (i.e., the value for
the is i-th 128-bit chunk of `dest`

is calculated with the i-th
128-bit blocks of `left`

and `right`

).