|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Transforms/Vectorize/SLPVectorizer.cpp 2174 assert((allConstant(VL) || allSameType(VL)) && "Invalid types!");
2174 assert((allConstant(VL) || allSameType(VL)) && "Invalid types!");
2176 InstructionsState S = getSameOpcode(VL);
2179 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2186 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2193 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2198 if (allConstant(VL) || isSplat(VL) || !allSameBlock(VL) || !S.getOpcode()) {
2198 if (allConstant(VL) || isSplat(VL) || !allSameBlock(VL) || !S.getOpcode()) {
2198 if (allConstant(VL) || isSplat(VL) || !allSameBlock(VL) || !S.getOpcode()) {
2200 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2208 for (Value *V : VL) {
2212 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2220 if (!E->isSame(VL)) {
2222 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2234 for (Value *V : VL) {
2241 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2249 for (Value *V : VL) {
2252 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2266 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2274 for (Value *V : VL) {
2281 if (NumUniqueScalarValues == VL.size()) {
2288 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx);
2291 VL = UniqueValues;
2300 Optional<ScheduleData *> Bundle = BS.tryScheduleBundle(VL, this, S);
2306 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2319 for (unsigned j = 0; j < VL.size(); ++j)
2322 cast<PHINode>(VL[j])->getIncomingValueForBlock(
2327 BS.cancelScheduling(VL, VL0);
2328 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2335 newTreeEntry(VL, Bundle, S, UserTreeIdx, ReuseShuffleIndicies);
2343 for (Value *j : VL)
2356 bool Reuse = canReuseExtract(VL, VL0, CurrentOrder);
2360 newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2365 Op0.assign(VL.size(), VL0->getOperand(0));
2382 newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2388 Op0.assign(VL.size(), VL0->getOperand(0));
2393 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2395 BS.cancelScheduling(VL, VL0);
2409 BS.cancelScheduling(VL, VL0);
2410 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2418 SmallVector<Value *, 4> PointerOps(VL.size());
2420 for (Value *V : VL) {
2423 BS.cancelScheduling(VL, VL0);
2424 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2451 if (Diff && Diff->getAPInt().getZExtValue() == (VL.size() - 1) * Size) {
2455 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S,
2464 newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2474 BS.cancelScheduling(VL, VL0);
2475 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2492 for (Value *V : VL) {
2495 BS.cancelScheduling(VL, VL0);
2496 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2503 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2511 for (Value *V : VL)
2524 for (Value *V : VL) {
2528 BS.cancelScheduling(VL, VL0);
2529 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2537 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2546 reorderInputsAccordingToOpcode(VL, Left, Right, *DL, *SE);
2549 for (Value *V : VL) {
2585 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2593 reorderInputsAccordingToOpcode(VL, Left, Right, *DL, *SE);
2605 for (Value *j : VL)
2614 for (Value *V : VL) {
2617 BS.cancelScheduling(VL, VL0);
2618 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2627 for (Value *V : VL) {
2632 BS.cancelScheduling(VL, VL0);
2633 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2640 for (Value *V : VL) {
2645 BS.cancelScheduling(VL, VL0);
2646 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2652 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2659 for (Value *V : VL)
2668 for (unsigned i = 0, e = VL.size() - 1; i < e; ++i)
2669 if (!isConsecutiveAccess(VL[i], VL[i + 1], *DL, *SE)) {
2669 if (!isConsecutiveAccess(VL[i], VL[i + 1], *DL, *SE)) {
2670 BS.cancelScheduling(VL, VL0);
2671 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2677 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2682 for (Value *V : VL)
2695 BS.cancelScheduling(VL, VL0);
2696 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2707 for (Value *V : VL) {
2712 BS.cancelScheduling(VL, VL0);
2713 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2725 BS.cancelScheduling(VL, VL0);
2726 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2740 BS.cancelScheduling(VL, VL0);
2741 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2749 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2755 for (Value *V : VL) {
2767 BS.cancelScheduling(VL, VL0);
2768 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,
2773 TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
2780 reorderInputsAccordingToOpcode(VL, Left, Right, *DL, *SE);
2792 for (Value *V : VL)
2800 BS.cancelScheduling(VL, VL0);
2801 newTreeEntry(VL, None /*not vectorized*/, S, UserTreeIdx,