Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Xor

114   /// Utility class representing a non-constant Xor-operand. We classify
115 /// non-constant Xor-Operands into two categories:
346 /// X occurring LHS + RHS times. If op is "Xor" for example then the combined
660 // because the expression was "X xor X" or consisted of 2^Bitwidth additions:
1073 /// OptimizeAndOrXor - Optimize a series of operands to an 'and', 'or', or 'xor'
1108 // Drop pairs of values for Xor.
1109 assert(Opcode == Instruction::Xor);
1152 // Xor-Rule 1: (x | c1) ^ c2 = (x | c1) ^ (c1 ^ c1) ^ c2
1198 // Xor-Rule 2:
1201 // = (x & ~c1) ^ (x & c2) ^ c1 // Xor-Rule 1
1202 // = (x & c3) ^ c1, where c3 = ~c1 ^ c2 // Xor-rule 3
1223 // Xor-Rule 3: (x | c1) ^ (x | c2) = (x & c3) ^ c3 where c3 = c1 ^ c2
1239 // Xor-Rule 4: (x & c1) ^ (x & c2) = (x & (c1^c2))
1257 /// Optimize a series of operands to an 'xor' instruction. If it can be reduced
1262 if (Value *V = OptimizeAndOrXor(Instruction::Xor, Ops))
1292 // Step 2: Sort the Xor-Operands in a way such that the operands containing
1761 case Instruction::Xor: