Lines Matching full:half
2937 // that all objects are in the positive half of address space.
2941 // For kernel code model we know that all object resist in the negative half
3259 // The mask of the second half must be the same as the first but with
3300 // The mask of the first half must be equal to the second one.
3312 /// version and the mask of the second half isn't binded with the first
3385 int Half = NumElems / 2;
3386 for (int i = 0; i < Half; ++i)
3389 for (int i = Half; i < NumElems; ++i)
3404 /// half elements to come from vector 1 (which would equal the dest.) and
3405 /// the upper half to come from vector 2.
3412 int Half = NumElems / 2;
3413 for (int i = 0; i < Half; ++i)
3416 for (int i = Half; i < NumElems; ++i)
3698 /// The first half comes from the second half of V1 and the second half from the
3699 /// the second half of V2.
3705 // The shuffle result is divided into half A and half B. In total the two
3712 for (int Half = 0; Half < 4; ++Half) {
3713 if (isSequentialOrUndefInRange(Mask, 0, HalfSize, Half*HalfSize)) {
3720 for (int Half = 0; Half < 4; ++Half) {
3721 if (isSequentialOrUndefInRange(Mask, HalfSize, HalfSize, Half*HalfSize)) {
3758 /// type is 32 or 64. In the VPERMILPS the high half of the mask should point
3759 /// to the same elements of the low, but to the higher half of the source.
3790 /// type is 32 or 64. In the VPERMILPS the high half of the mask should point
3791 /// to the same elements of the low, but to the higher half of the source.
3838 // first half but valid on the second. This would get pathological cases
4189 /// match movhlps. The lower half elements should come from upper half of
4190 /// V1 (and in order), and the upper half elements should come from the upper
4191 /// half of V2 (and in order).
4222 /// match movlp{s|d}. The lower half elements should come from lower half of
4223 /// V1 (and in order), and the upper half elements should come from the upper
4224 /// half of V2 (and in order). And since V1 will become the source of the
4394 unsigned Half = NumElems/2;
4396 for (unsigned i = 0; i != Half; ++i) {
4397 Mask.push_back(i + Half);
4398 Mask.push_back(i + NumElems + Half);
4437 // To use VPERMILPS to splat scalars, the second half of indicies must
5019 // consecutive loads for the low half, generate a vzext_load node.
5239 // One half is zero or undef.
5918 /// areShuffleHalvesWithinDisjointLanes - Check whether each half of a vector
5950 // If each half of a vector shuffle node referes to only one lane in the
5959 // Extract the reference for each half
6072 // that will be in the same half in the final destination (the indexes don't
6073 // matter). Then, use a shufps to build the final vector, taking the half
6074 // containing the element from Y from the intermediate, and the other half
7057 // insert the element into the extracted half and then place it back.
7062 // Get the desired 128-bit vector half.
7069 // Insert the element into the desired half.
7694 // Combine into low half of a single xmm register.
12448 // To match the shuffle mask, the first half of the mask should
12457 // first half.