pub fn poseidon2_compress_x(
        &mut self,
        result: &mut Array<C, Felt<C::F>>,
        left: &Array<C, Felt<C::F>>,
        right: &Array<C, Felt<C::F>>,
    ) {
        self.push_op(DslIr::Poseidon2CompressBabyBear(Box::new((
            result.clone(),
            left.clone(),
            right.clone(),
        ))));
    }
Applies the Poseidon2 compression to the given array.

Reference: [p3_symmetric::TruncatedPermutation]
crates/recursion/compiler/src/ir/poseidon.rs