Lines Matching defs:SetCC
494 // isSetCCEquivalent - Return true if this node is a setcc, or is a select_cc
495 // that selects between the values 1 and 0, making it equivalent to a setcc.
501 if (N.getOpcode() == ISD::SETCC) {
520 // isOneUseSetCC - Return true if this is a SetCC-equivalent operation with only
1077 case ISD::SETCC: return visitSETCC(N);
2319 // fold (and (setcc x), (setcc y)) -> (setcc (and x, y))
2791 // fold (or (setcc x), (setcc y)) -> (setcc (or x, y))
3097 llvm_unreachable("Unhandled SetCC Equivalent!");
3098 case ISD::SETCC:
3107 // fold (not (zext (setcc x, y))) -> (zext (not (setcc x, y)))
3118 // fold (not (or x, y)) -> (and (not x), (not y)) iff x or y are setcc
3689 // %c = setcc eq %b, 0
3807 // fold selects based on a setcc into other things, such as min/max/abs
3808 if (N0.getOpcode() == ISD::SETCC) {
3849 if (SCC.getNode() && SCC.getOpcode() == ISD::SETCC)
3886 // FIXME: Only extend SETCC N, N and SETCC N, c for now.
3887 if (ExtOpc != ISD::ANY_EXTEND && User->getOpcode() == ISD::SETCC) {
3935 // Extend SetCC uses if necessary.
3937 SDNode *SetCC = SetCCs[i];
3941 SDValue SOp = SetCC->getOperand(j);
3948 Ops.push_back(SetCC->getOperand(2));
3949 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0),
4110 if (N0.getOpcode() == ISD::SETCC) {
4111 // sext(setcc) -> sext_in_reg(vsetcc) for vectors.
4142 // sext(setcc x, y, cc) -> (select_cc x, y, -1, 0, cc)
4152 TLI.isOperationLegal(ISD::SETCC, TLI.getSetCCResultType(VT)))
4336 if (N0.getOpcode() == ISD::SETCC) {
4338 // zext(setcc) -> (and (vsetcc), (1, 1, ...) for vectors.
4376 // zext(setcc x,y,cc) -> select_cc x, y, 1, 0, cc
4524 if (N0.getOpcode() == ISD::SETCC) {
4525 // aext(setcc) -> sext_in_reg(vsetcc) for vectors.
4556 // aext(setcc x,y,cc) -> select_cc x, y, 1, 0, cc
5706 // fold a brcond with a setcc condition into a BR_CC node if BR_CC is legal
5708 if (N1.getOpcode() == ISD::SETCC &&
5737 // %c = setcc eq %b, 0
5755 SDValue SetCC =
5762 MVT::Other, Chain, SetCC, N2);
5771 // Replace the uses of SRL with SETCC
5773 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes);
5810 if (Op0.getOpcode() != ISD::SETCC && Op1.getOpcode() != ISD::SETCC) {
5822 SDValue SetCC = DAG.getSetCC(TheXor->getDebugLoc(),
5826 // Replace the uses of XOR with SETCC
5828 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes);
5832 MVT::Other, Chain, SetCC, N2);
5851 // Use SimplifySetCC to simplify SETCC's.
5857 // fold to a simpler setcc
5858 if (Simp.getNode() && Simp.getOpcode() == ISD::SETCC)
7251 assert(N0.getOpcode() ==ISD::SETCC && "First argument must be a SetCC node!");
7257 // break it down into a new SETCC node, and a new SELECT node, and then return
7260 // Check to see if we got a select_cc back (to turn into setcc/select).
7263 SDValue SETCC = DAG.getNode(ISD::SETCC, N0.getDebugLoc(),
7267 AddToWorkList(SETCC.getNode());
7269 SCC.getOperand(2), SCC.getOperand(3), SETCC);
7563 // Get a SetCC of the condition
7564 // FIXME: Should probably make sure that setcc is legal if we ever have a
7567 // cast from setcc result type to select result type
7588 // shl setcc result by log2 n2c
7594 // Check to see if this is the equivalent of setcc
7595 // FIXME: Turn all of these into setcc if setcc if setcc is legal
7600 TLI.isOperationLegal(ISD::SETCC, TLI.getSetCCResultType(XType))) {