Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:Input

227   // Get the dest type - it doesn't always match the input type, e.g. int_to_fp.
433 /// ScalarizeVecOp_EXTRACT_VECTOR_ELT - If the input is a vector that needs to
614 // We know the result is a vector. The input may be either a vector or a
646 // If the input is a vector that needs to be split, convert each split
647 // piece of the input now.
654 // In the general case, convert the input to an integer and split it by hand.
849 // Split the input.
870 // Get the dest types - they may not match the input types, e.g. int_to_fp.
875 // If the input also splits, handle it directly for a compile time speedup.
912 // The low and high parts of the original input give four input vectors.
920 // If Lo or Hi uses elements from at most two of the four input vectors, then
922 // input elements by hand and construct the Lo/Hi output using a BUILD_VECTOR.
928 // input vectors to use as shuffle operands (recorded in InputUsed).
935 // The mask element. This indexes into the input.
938 // The input vector this mask element indexes into.
939 unsigned Input = (unsigned)Idx / NewElts;
941 if (Input >= array_lengthof(Inputs)) {
942 // The mask element does not index into any input vector.
947 // Turn the index into an offset from the start of the input vector.
948 Idx -= Input * NewElts;
950 // Find or create a shuffle vector operand to hold this input.
953 if (InputUsed[OpNo] == Input) {
954 // This input vector is already an operand.
957 // Create a new operand for this input vector.
958 InputUsed[OpNo] = Input;
964 // More than two input vectors used! Give up on trying to create a
978 // Extract the input elements by hand.
980 // The mask element. This indexes into the input.
983 // The input vector this mask element indexes into.
984 unsigned Input = (unsigned)Idx / NewElts;
986 if (Input >= array_lengthof(Inputs)) {
987 // The mask element is "undef" or indexes off the end of the input.
992 // Turn the index into an offset from the start of the input vector.
993 Idx -= Input * NewElts;
997 Inputs[Input], DAG.getIntPtrConstant(Idx)));
1003 // No input vectors were used! The result is undefined.
1007 // If only one input was used, use an undefined vector for the other.
1010 // At least one input vector was used. Create a new shuffle vector.
1142 // The result has a legal vector type, but the input needs splitting.
1275 // The input
1277 // input elements.
1278 // TODO: If the input elements are power-two vectors, we could convert this to
1300 // The result has a legal vector type, but the input needs splitting.
1317 // The result has a legal vector type, but the input needs splitting.
1495 int Idx = 0; // Current Idx into input vectors.
1626 // Because the result and the input are different vector types, widening
1627 // the result could create a legal type but widening the input might make
1628 // it an illegal type that might lead to repeatedly splitting the input
1629 // and then widening it. To avoid this, we widen the input only if
1632 // Widen the input and call convert on the widened input vector.
1649 // Extract the input and convert the shorten input vector.
1744 // fall out of the switch and widen the promoted input.
1758 // out of the switch and widen the widened input.
1762 // The input widens to the same size. Convert to the widen value.
1771 // Determine new input vector type. The new input vector type will use
1772 // the same element type (if its a vector) or use the input type as a
1785 // Because the result and the input are different vector types, widening
1786 // the result could create a legal type but widening the input might make
1787 // it an illegal type that might lead to repeatedly splitting the input
1788 // and then widening it. To avoid this, we widen the input only if
1836 bool InputWidened = false; // Indicates we need to widen the input.
1925 // Because the result and the input are different vector types, widening
1926 // the result could create a legal type but widening the input might make
1927 // it an illegal type that might lead to repeatedly splitting the input
1928 // and then widening it. To avoid this, we widen the input only if
1931 // Widen the input and call convert on the widened input vector.
1945 // Extract the input and convert the shorten input vector.
1988 // Check if we can just return the input vector after widening.
1998 // We could try widening the input to the right length but for now, extract
2116 // Adjust mask based on new input vector length.
2145 // Assume that the input and output will be widen appropriately. If not,
2149 "Input not widened to expected type!");
2215 // Since the result is legal and the input is illegal, it is unlikely
2216 // that we can fix the input to a legal type so unroll the convert
2262 // If the input vector is not legal, it is likely that we will not find a
2751 /// Modifies a vector input (widen or narrows) to a vector of NVT. The
2752 /// input vector must have the same element type as NVT.
2758 "input and widen element type must match");