reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
21214       ((Subtarget.hasSSE2() && VT == MVT::f64) ||
21215        (Subtarget.hasSSE1() && VT == MVT::f32)) &&
21216       VT == Cond.getOperand(0).getSimpleValueType() && Cond->hasOneUse()) {
21225       assert(!VT.isVector() && "Not a scalar type?");
21226       return DAG.getNode(X86ISD::SELECTS, DL, VT, Cmp, Op1, Op2);
21230       SDValue Cmp = DAG.getNode(X86ISD::FSETCC, DL, VT, CondOp0, CondOp1,
21249         MVT VecVT = VT == MVT::f32 ? MVT::v4f32 : MVT::v2f64;
21254         MVT VCmpVT = VT == MVT::f32 ? MVT::v4i32 : MVT::v2i64;
21259         return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT,
21262       SDValue AndN = DAG.getNode(X86ISD::FANDN, DL, VT, Cmp, Op2);
21263       SDValue And = DAG.getNode(X86ISD::FAND, DL, VT, Cmp, Op1);
21264       return DAG.getNode(X86ISD::FOR, DL, VT, AndN, And);
21269   if ((VT == MVT::f64 || VT == MVT::f32) && Subtarget.hasAVX512()) {
21269   if ((VT == MVT::f64 || VT == MVT::f32) && Subtarget.hasAVX512()) {
21271     return DAG.getNode(X86ISD::SELECTS, DL, VT, Cmp, Op1, Op2);
21275   if (VT == MVT::v64i1 && !Subtarget.is64Bit()) {
21283     return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Lo, Hi);
21286   if (VT.isVector() && VT.getVectorElementType() == MVT::i1) {
21286   if (VT.isVector() && VT.getVectorElementType() == MVT::i1) {
21300       if (newSelect.getValueSizeInBits() == VT.getSizeInBits())
21301         return DAG.getBitcast(VT, newSelect);
21303       return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, ExtVec,
21387         if (CmpSz > VT.getSizeInBits())
21388           Neg = DAG.getNode(ISD::TRUNCATE, DL, VT, CmpOp0);
21389         else if (CmpSz < VT.getSizeInBits())
21390           Neg = DAG.getNode(ISD::AND, DL, VT,
21391               DAG.getNode(ISD::ANY_EXTEND, DL, VT, CmpOp0.getOperand(0)),
21392               DAG.getConstant(1, DL, VT));
21395         SDValue Mask = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT),
21395         SDValue Mask = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT),
21397         SDValue And = DAG.getNode(ISD::AND, DL, VT, Mask, Src1); // Mask & z
21398         return DAG.getNode(Op2.getOpcode(), DL, VT, And, Src2);  // And Op y
21418     if (VT.isFloatingPoint() && !VT.isVector() &&
21418     if (VT.isFloatingPoint() && !VT.isVector() &&
21419         !isScalarFPTypeInSSEReg(VT))  // FPStack?