private JitVal subpiece(Varnode outVn, int offset, JitVal v) {
		JitOutVar out = dfm.generateOutVar(outVn);
		JitVal simplified = trySimplifiedSubPiece(out, offset, v);
		if (simplified != null) {
			return simplified;
		}
		return dfm.notifyOp(new JitSynthSubPieceOp(out, offset, v)).out();
	}
Construct the result of taking the subpiece

<p>
If the input is another subpiece or a catenation, the result may be simplified. In
particular, the subpiece of a catenation may be a smaller catenation. No matter the case, the
given output variable is made the output of the subpiece result, and the use-def graph is
updated accordingly.

@param outVn the output variable
@param offset the subpiece offset (number of bytes shifted right)
@param v the input value
@return the output variable, as the result of the simplified sub-graph
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitDataFlowArithmetic.java