public void caseDup2_x2Inst(Dup2_x2Inst i) {
Type u1 = i.getUnder1Type();
Type o1 = i.getOp1Type();
if (u1 instanceof DoubleType || u1 instanceof LongType) {
if (o1 instanceof DoubleType || o1 instanceof LongType) {
remove_types = new Type[] { u1, o1 };
add_types = new Type[] { o1, u1, o1 };
} else {
remove_types = new Type[] { u1, i.getOp2Type(), o1 };
add_types = new Type[] { i.getOp2Type(), o1, u1, i.getOp2Type(), o1 };
}
} else if (o1 instanceof DoubleType || o1 instanceof LongType) {
remove_types = new Type[] { i.getUnder2Type(), u1, o1 };
add_types = new Type[] { o1, i.getUnder2Type(), u1, o1 };
} else {
remove_types = new Type[] { i.getUnder2Type(), u1, i.getOp2Type(), o1 };
add_types = new Type[] { i.getOp2Type(), o1, i.getUnder2Type(), u1, i.getOp2Type(), o1 };
}
}