reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
4291 return getConstant(Val.sextOrTrunc(VT.getSizeInBits()), DL, VT, 4291 return getConstant(Val.sextOrTrunc(VT.getSizeInBits()), DL, VT, 4299 return getConstant(Val.zextOrTrunc(VT.getSizeInBits()), DL, VT, 4299 return getConstant(Val.zextOrTrunc(VT.getSizeInBits()), DL, VT, 4303 APFloat apf(EVTToAPFloatSemantics(VT), 4304 APInt::getNullValue(VT.getSizeInBits())); 4308 return getConstantFP(apf, DL, VT); 4311 if (VT == MVT::f16 && C->getValueType(0) == MVT::i16) 4312 return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT); 4313 if (VT == MVT::f32 && C->getValueType(0) == MVT::i32) 4314 return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); 4315 if (VT == MVT::f64 && C->getValueType(0) == MVT::i64) 4316 return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); 4317 if (VT == MVT::f128 && C->getValueType(0) == MVT::i128) 4318 return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT); 4321 return getConstant(Val.abs(), DL, VT, C->isTargetOpcode(), 4324 return getConstant(Val.reverseBits(), DL, VT, C->isTargetOpcode(), 4327 return getConstant(Val.byteSwap(), DL, VT, C->isTargetOpcode(), 4330 return getConstant(Val.countPopulation(), DL, VT, C->isTargetOpcode(), 4334 return getConstant(Val.countLeadingZeros(), DL, VT, C->isTargetOpcode(), 4338 return getConstant(Val.countTrailingZeros(), DL, VT, C->isTargetOpcode(), 4347 (void)FPV.convert(EVTToAPFloatSemantics(VT), 4349 return getConstantFP(FPV, DL, VT); 4360 return getConstantFP(V, DL, VT); 4363 return getConstantFP(V, DL, VT); 4367 return getConstantFP(V, DL, VT); 4373 return getConstantFP(V, DL, VT); 4379 return getConstantFP(V, DL, VT); 4386 (void)V.convert(EVTToAPFloatSemantics(VT), 4388 return getConstantFP(V, DL, VT); 4393 APSInt IntVal(VT.getSizeInBits(), Opcode == ISD::FP_TO_UINT); 4399 return getConstant(IntVal, DL, VT); 4402 if (VT == MVT::i16 && C->getValueType(0) == MVT::f16) 4403 return getConstant((uint16_t)V.bitcastToAPInt().getZExtValue(), DL, VT); 4404 else if (VT == MVT::i32 && C->getValueType(0) == MVT::f32) 4405 return getConstant((uint32_t)V.bitcastToAPInt().getZExtValue(), DL, VT); 4406 else if (VT == MVT::i64 && C->getValueType(0) == MVT::f64) 4407 return getConstant(V.bitcastToAPInt().getZExtValue(), DL, VT); 4415 return getConstant(V.bitcastToAPInt(), DL, VT); 4451 if (SDValue Fold = FoldConstantVectorArithmetic(Opcode, DL, VT, Ops)) 4467 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) 4473 assert(VT.isFloatingPoint() && 4475 if (Operand.getValueType() == VT) return Operand; // noop conversion. 4476 assert((!VT.isVector() || 4477 VT.getVectorNumElements() == 4480 assert(Operand.getValueType().bitsLT(VT) && 4483 return getUNDEF(VT); 4488 return getUNDEF(VT); 4494 return getConstantFP(0.0, DL, VT); 4497 assert(VT.isInteger() && Operand.getValueType().isInteger() && 4499 assert(VT.isVector() == Operand.getValueType().isVector() && 4502 if (Operand.getValueType() == VT) return Operand; // noop extension 4503 assert((!VT.isVector() || 4504 VT.getVectorNumElements() == 4507 assert(Operand.getValueType().bitsLT(VT) && 4510 return getNode(OpOpcode, DL, VT, Operand.getOperand(0)); 4513 return getConstant(0, DL, VT); 4516 assert(VT.isInteger() && Operand.getValueType().isInteger() && 4518 assert(VT.isVector() == Operand.getValueType().isVector() && 4521 if (Operand.getValueType() == VT) return Operand; // noop extension 4522 assert((!VT.isVector() || 4523 VT.getVectorNumElements() == 4526 assert(Operand.getValueType().bitsLT(VT) && 4529 return getNode(ISD::ZERO_EXTEND, DL, VT, Operand.getOperand(0)); 4532 return getConstant(0, DL, VT); 4535 assert(VT.isInteger() && Operand.getValueType().isInteger() && 4537 assert(VT.isVector() == Operand.getValueType().isVector() && 4540 if (Operand.getValueType() == VT) return Operand; // noop extension 4541 assert((!VT.isVector() || 4542 VT.getVectorNumElements() == 4545 assert(Operand.getValueType().bitsLT(VT) && 4551 return getNode(OpOpcode, DL, VT, Operand.getOperand(0)); 4553 return getUNDEF(VT); 4558 if (OpOp.getValueType() == VT) { 4565 assert(VT.isInteger() && Operand.getValueType().isInteger() && 4567 assert(VT.isVector() == Operand.getValueType().isVector() && 4570 if (Operand.getValueType() == VT) return Operand; // noop truncate 4571 assert((!VT.isVector() || 4572 VT.getVectorNumElements() == 4575 assert(Operand.getValueType().bitsGT(VT) && 4578 return getNode(ISD::TRUNCATE, DL, VT, Operand.getOperand(0)); 4583 .bitsLT(VT.getScalarType())) 4584 return getNode(OpOpcode, DL, VT, Operand.getOperand(0)); 4585 if (Operand.getOperand(0).getValueType().bitsGT(VT)) 4586 return getNode(ISD::TRUNCATE, DL, VT, Operand.getOperand(0)); 4590 return getUNDEF(VT); 4595 assert(VT.isVector() && "This DAG node is restricted to vector types."); 4596 assert(Operand.getValueType().bitsLE(VT) && 4598 assert(VT.getVectorNumElements() < 4603 assert(VT.isInteger() && VT == Operand.getValueType() && 4603 assert(VT.isInteger() && VT == Operand.getValueType() && 4606 return getUNDEF(VT); 4609 assert(VT.isInteger() && VT == Operand.getValueType() && 4609 assert(VT.isInteger() && VT == Operand.getValueType() && 4611 assert((VT.getScalarSizeInBits() % 16 == 0) && 4614 return getUNDEF(VT); 4617 assert(VT.isInteger() && VT == Operand.getValueType() && 4617 assert(VT.isInteger() && VT == Operand.getValueType() && 4620 return getUNDEF(VT); 4624 assert(VT.getSizeInBits() == Operand.getValueSizeInBits() && 4626 if (VT == Operand.getValueType()) return Operand; // noop conversion. 4628 return getNode(ISD::BITCAST, DL, VT, Operand.getOperand(0)); 4630 return getUNDEF(VT); 4633 assert(VT.isVector() && !Operand.getValueType().isVector() && 4634 (VT.getVectorElementType() == Operand.getValueType() || 4635 (VT.getVectorElementType().isInteger() && 4637 VT.getVectorElementType().bitsLE(Operand.getValueType()))) && 4640 return getUNDEF(VT); 4645 Operand.getOperand(0).getValueType() == VT) 4651 return getUNDEF(VT); 4656 return getNode(ISD::FSUB, DL, VT, Operand.getOperand(1), 4663 return getNode(ISD::FABS, DL, VT, Operand.getOperand(0)); 4668 SDVTList VTs = getVTList(VT); 4670 if (VT != MVT::Glue) { // Don't CSE flag producing nodes