Operand[] callArgs = getCallArgs();
if (containsArgSplat(callArgs)) return this;
switch (callArgs.length) {
case 0:
return hasClosure() ? this : new ZeroOperandArgNoBlockCallInstr(this);
case 1:
if (isAllFixnums() && !hasClosure()) return new OneFixnumArgNoBlockCallInstr(this);
return hasClosure() ? new OneOperandArgBlockCallInstr(this) : new OneOperandArgNoBlockCallInstr(this);
}