pub fn pack_if_pair(mut self, bcx: &BlockAndBuilder<'bcx, 'tcx>)
                        -> OperandRef<'tcx> {
        if let OperandValue::Pair(a, b) = self.val {
            // Reconstruct the immediate aggregate.
            let llty = type_of::type_of(bcx.ccx(), self.ty);
            let mut llpair = common::C_undef(llty);
            let elems = [a, b];
            for i in 0..2 {
                let mut elem = elems[i];
                // Extend boolean i1's to i8.
                if common::val_ty(elem) == Type::i1(bcx.ccx()) {
                    elem = bcx.zext(elem, Type::i8(bcx.ccx()));
                }
                llpair = bcx.insert_value(llpair, elem, i);
            }
            self.val = OperandValue::Immediate(llpair);
        }
        self
    }
/// If this operand is a Pair, we return an
/// Immediate aggregate with the two values.
If this operand is a Pair, we return an
Immediate aggregate with the two values.
If this operand is a Pair we return an Immediate aggregate with the two values .
pub fn pack_if_pair(mut self, bcx: &BlockAndBuilder<'bcx, 'tcx>)
                        -> OperandRef<'tcx> {
        if let OperandValue::Pair(a, b) = self.val {
            // Reconstruct the immediate aggregate.
            let llty = type_of::type_of(bcx.ccx(), self.ty);
            let mut llpair = common::C_undef(llty);
            let elems = [a, b];
            for i in 0..2 {
                let mut elem = elems[i];
                // Extend boolean i1's to i8.
                if common::val_ty(elem) == Type::i1(bcx.ccx()) {
                    elem = bcx.zext(elem, Type::i8(bcx.ccx()));
                }
                llpair = bcx.insert_value(llpair, elem, i);
            }
            self.val = OperandValue::Immediate(llpair);
        }
        self
    }
pub fn pack_if_pair ( mut self , bcx : & BlockAndBuilder < ' bcx , ' tcx > ) -> OperandRef < ' tcx > { if let OperandValue :: Pair ( a , b ) = self . val { // Reconstruct the immediate aggregate. let llty = type_of :: type_of ( bcx . ccx ( ) , self . ty ) ; let mut llpair = common :: C_undef ( llty ) ; let elems = [ a , b ] ; for i in 0 .. 2 { let mut elem = elems [ i ] ; // Extend boolean i1's to i8. if common :: val_ty ( elem ) == Type :: i1 ( bcx . ccx ( ) ) { elem = bcx . zext ( elem , Type :: i8 ( bcx . ccx ( ) ) ) ; } llpair = bcx . insert_value ( llpair , elem , i ) ; } self . val = OperandValue :: Immediate ( llpair ) ; } self }
If this operand is a Pair, we return an
Immediate aggregate with the two values.
If this operand is a Pair we return an Immediate aggregate with the two values .
mut self
bcx
&BlockAndBuilder<'bcx, 'tcx>
mut self
bcx
&BlockAndBuilder<'bcx, 'tcx>