Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:SETCC

530 // isSetCCEquivalent - Return true if this node is a setcc, or is a select_cc
531 // that selects between the values 1 and 0, making it equivalent to a setcc.
537 if (N.getOpcode() == ISD::SETCC) {
556 // isOneUseSetCC - Return true if this is a SetCC-equivalent operation with only
1123 case ISD::SETCC: return visitSETCC(N);
2541 // fold (and (setcc x), (setcc y)) -> (setcc (and x, y))
3013 // fold (or (setcc x), (setcc y)) -> (setcc (or x, y))
3319 llvm_unreachable("Unhandled SetCC Equivalent!");
3320 case ISD::SETCC:
3329 // fold (not (zext (setcc x, y))) -> (zext (not (setcc x, y)))
3340 // fold (not (or x, y)) -> (and (not x), (not y)) iff x or y are setcc
3912 // %c = setcc eq %b, 0
4050 // fold selects based on a setcc into other things, such as min/max/abs
4051 if (N0.getOpcode() == ISD::SETCC) {
4092 if (SCC.getNode() && SCC.getOpcode() == ISD::SETCC)
4129 // FIXME: Only extend SETCC N, N and SETCC N, c for now.
4130 if (ExtOpc != ISD::ANY_EXTEND && User->getOpcode() == ISD::SETCC) {
4178 // Extend SetCC uses if necessary.
4180 SDNode *SetCC = SetCCs[i];
4184 SDValue SOp = SetCC->getOperand(j);
4191 Ops.push_back(SetCC
4192 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0),
4353 if (N0.getOpcode() == ISD::SETCC) {
4354 // sext(setcc) -> sext_in_reg(vsetcc) for vectors.
4358 // On some architectures (such as SSE/NEON/etc) the SETCC result type is
4359 // of the same size as the compared operands. Only optimize sext(setcc())
4392 // sext(setcc x, y, cc) -> (select_cc x, y, -1, 0, cc)
4402 TLI.isOperationLegal(ISD::SETCC, TLI.getSetCCResultType(VT)))
4432 if (N->getOpcode() != ISD::SETCC || N->getValueType(0) != MVT::i1 ||
4648 if (N0.getOpcode() == ISD::SETCC) {
4650 // zext(setcc) -> (and (vsetcc), (1, 1, ...) for vectors.
4688 // zext(setcc x,y,cc) -> select_cc x, y, 1, 0, cc
4836 if (N0.getOpcode() == ISD::SETCC) {
4837 // aext(setcc) -> sext_in_reg(vsetcc) for vectors.
4868 // aext(setcc x,y,cc) -> select_cc x, y, 1, 0, cc
6121 // fold a brcond with a setcc condition into a BR_CC node if BR_CC is legal
6123 if (N1.getOpcode() == ISD::SETCC &&
6152 // %c = setcc eq %b, 0
6170 SDValue SetCC =
6177 MVT::Other, Chain, SetCC, N2);
6186 // Replace the uses of SRL with SETCC
6188 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes);
6225 if (Op0.getOpcode() != ISD::SETCC && Op1.getOpcode() != ISD::SETCC) {
6237 SDValue SetCC = DAG.getSetCC(TheXor->getDebugLoc(),
6241 // Replace the uses of XOR with SETCC
6243 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes);
6247 MVT::Other, Chain, SetCC, N2);
6266 // Use SimplifySetCC to simplify SETCC's.
6272 // fold to a simpler setcc
6273 if (Simp.getNode() && Simp.getOpcode() == ISD::SETCC)
8061 assert(N0.getOpcode() ==ISD::SETCC && "First argument must be a SetCC node!");
8067 // break it down into a new SETCC node, and a new SELECT node, and then return
8070 // Check to see if we got a select_cc back (to turn into setcc/select).
8073 SDValue SETCC = DAG.getNode(ISD::SETCC, N0.getDebugLoc(),
8077 AddToWorkList(SETCC.getNode());
8079 SCC.getOperand(2), SCC.getOperand(3), SETCC);
8375 // Get a SetCC of the condition
8376 // FIXME: Should probably make sure that setcc is legal if we ever have a
8379 // cast from setcc result type to select result type
8400 // shl setcc result by log2 n2c
8406 // Check to see if this is the equivalent of setcc
8407 // FIXME: Turn all of these into setcc if setcc if setcc is legal
8412 TLI.isOperationLegal(ISD::SETCC, TLI.getSetCCResultType(XType))) {