Lines Matching defs:dstShape
2351 ArrayRef<int64_t> dstShape) {
2352 int64_t rankDiff = dstShape.size() - srcShape.size();
2356 llvm::zip_equal(srcShape, dstShape.drop_front(rankDiff))) {
2375 /// Broadcast `value` to a vector of `dstShape`, knowing that exactly the
2376 /// `broadcastedDims` dimensions in the dstShape are broadcasted.
2381 /// `value`, `dstShape` and `broadcastedDims` must be properly specified or
2383 /// 1. `dstShape` must not be empty.
2385 /// 2. `dstShape` trimmed of the dimensions specified in `broadcastedDims`
2388 OpBuilder &b, Value value, ArrayRef<int64_t> dstShape,
2390 assert(!dstShape.empty() && "unexpected empty dst shape");
2394 for (int i = 0, e = dstShape.size(); i < e; ++i) {
2397 checkShape.push_back(dstShape[i]);
2399 assert(broadcastedDims.size() == dstShape.size() - checkShape.size() &&
2406 VectorType dstVectorType = VectorType::get(dstShape, elementType);
2408 // Step 2. If scalar -> dstShape broadcast, just do it.
2419 // vector -> dstShape broadcast may require a transpose.
2424 // bring us from `broadcastShape` back to he desired `dstShape`.
2426 SmallVector<int64_t> broadcastShape, permutation(dstShape.size(), -1);
2427 broadcastShape.reserve(dstShape.size());
2430 // dstShape = 1x2x3x4x5
2444 for (int64_t i = 0, e = dstShape.size(); i < e; ++i) {
2450 broadcastShape.push_back(dstShape[i]);