HomeSort by: relevance | last modified time | path
    Searched defs:Shuffle (Results 1 - 20 of 20) sorted by relevancy

  /src/external/apache2/llvm/dist/llvm/include/llvm/IR/
UseListOrder.h 29 std::vector<unsigned> Shuffle;
32 : V(V), F(F), Shuffle(ShuffleSize) {}
  /src/external/apache2/llvm/dist/llvm/lib/Target/ARM/
MVELaneInterleavingPass.cpp 27 // %sha = shuffle v8i16 %a, undef, <0, 2, 4, 6, 1, 3, 5, 7>
29 // %shb = shuffle v8i16 %b, undef, <0, 2, 4, 6, 1, 3, 5, 7>
33 // %shr = shuffle v8i16 %r, undef, <0, 4, 1, 5, 2, 6, 3, 7>
256 // A shuffle of a splat is a splat.
339 Value *Shuffle = Builder.CreateShuffleVector(I->getOperand(0), LeafMask);
342 Value *Ext = FPext ? Builder.CreateFPExt(Shuffle, I->getType())
343 : Sext ? Builder.CreateSExt(Shuffle, I->getType())
344 : Builder.CreateZExt(Shuffle, I->getType());
346 LLVM_DEBUG(dbgs() << " with " << *Shuffle << "\n");
352 Value *Shuffle = Builder.CreateShuffleVector(I->get(), LeafMask)
    [all...]
ARMISelLowering.cpp 6900 // check if an VEXT instruction can handle the shuffle mask when the
6901 // vector sources of the shuffle are the same.
6905 // Assume that the first shuffle index is not UNDEF. Fail if it is.
6911 // If this is a VEXT shuffle, the immediate value is the index of the first
6912 // element. The other shuffle indices must be the successive elements after
6935 // Assume that the first shuffle index is not UNDEF. Fail if it is.
6941 // If this is a VEXT shuffle, the immediate value is the index of the first
6942 // element. The other shuffle indices must be the successive elements after
6980 // Checks whether the shuffle mask represents a vector transpose (VTRN) by
6981 // checking that pairs of elements in the shuffle mask represent the same inde
    [all...]
  /src/external/apache2/llvm/dist/libcxx/benchmarks/
map.bench.cpp 58 enum class Shuffle { None, Keys, Hints };
60 TestSets makeTestingSets(size_t MapSize, Mode mode, Shuffle shuffle,
63 * The shuffle does not retain the random number generator to use the same
73 if (shuffle == Shuffle::Keys)
74 std::shuffle(R.Keys.begin(), R.Keys.end(), std::mt19937());
82 if (shuffle == Shuffle::Hints)
83 std::shuffle(hints.begin(), hints.end(), std::mt19937())
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/AArch64/GISel/
AArch64PostLegalizerCombiner.cpp 74 MachineInstr *Shuffle =
77 if (!Shuffle) {
78 Shuffle = getOpcodeDef(TargetOpcode::G_SHUFFLE_VECTOR, Src1Op1, MRI);
82 // We're looking for a shuffle that moves the second element to index 0.
83 if (Shuffle && Shuffle->getOperand(3).getShuffleMask()[0] == 1 &&
84 Other == MRI.getVRegDef(Shuffle->getOperand(1).getReg())) {
  /src/external/apache2/llvm/dist/llvm/lib/Target/X86/
X86PartialReduction.cpp 326 // shuffle and another add which we checked in the previous iteration.
333 auto *Shuffle = dyn_cast<ShuffleVectorInst>(LHS);
334 if (Shuffle) {
337 Shuffle = dyn_cast<ShuffleVectorInst>(RHS);
341 // The first operand of the shuffle should be the same as the other operand
343 if (!Shuffle || Shuffle->getOperand(0) != Op)
346 // Verify the shuffle has the expected (at this stage of the pyramid) mask.
349 if (Shuffle->getMaskValue(Index) != (int)(MaskEnd + Index))
X86InstCombineIntrinsic.cpp 490 // Shuffle clamped args together at the lane level.
498 auto *Shuffle = Builder.CreateShuffleVector(Arg0, Arg1, PackMask);
501 return Builder.CreateTrunc(Shuffle, ResTy);
595 // overrides the destination lane, this is a shuffle with the zero vector.
607 // TODO: Model this case as 2 shuffles or a 'logical and' plus shuffle?
619 /// or conversion to a shuffle vector.
660 // If we are inserting whole bytes, we can convert this to a shuffle.
661 // Lowering can recognize EXTRQI shuffle masks.
710 /// folding or conversion to a shuffle vector.
737 // If we are inserting whole bytes, we can convert this to a shuffle
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
AMDGPUPrintfRuntimeBinding.cpp 477 ShuffleVectorInst *Shuffle =
479 Shuffle->insertBefore(Brnch);
480 Arg = Shuffle;
AMDGPUInstCombineIntrinsic.cpp 1045 Value *Shuffle = IC.Builder.CreateShuffleVector(NewCall, EltMask);
1047 return Shuffle;
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/InstCombine/
InstCombineSimplifyDemanded.cpp 1254 auto *Shuffle = cast<ShuffleVectorInst>(I);
1255 assert(Shuffle->getOperand(0)->getType() ==
1256 Shuffle->getOperand(1)->getType() &&
1257 "Expected shuffle operands to have same type");
1258 unsigned OpWidth = cast<FixedVectorType>(Shuffle->getOperand(0)->getType())
1262 if (all_of(Shuffle->getShuffleMask(), [](int Elt) { return Elt == 0; }) &&
1281 unsigned MaskVal = Shuffle->getMaskValue(i);
1299 // If this shuffle does not change the vector length and the elements
1300 // demanded by this shuffle are an identity mask, then this shuffle i
    [all...]
InstCombineVectorOps.cpp 290 ShuffleVectorInst *Shuffle = cast<ShuffleVectorInst>(UserInstr);
296 unsigned MaskVal = Shuffle->getMaskValue(i);
299 if (Shuffle->getOperand(0) == V && (MaskVal < VWidth))
301 if (Shuffle->getOperand(1) == V &&
469 /// If V is a shuffle of values that ONLY returns elements from either LHS or
470 /// RHS, return the shuffle mask and true. Otherwise, return false.
557 // Create a shuffle mask to widen the extended-from vector using undefined
580 // that will delete our widening shuffle. This would trigger another attempt
581 // here to create that shuffle, and we spin forever.
587 // into a shuffle. We really should not need either check, but we're lackin
    [all...]
InstCombineCalls.cpp 1900 Value *Shuffle = Builder.CreateShuffleVector(Vec, WidenShuffle, Mask);
1901 replaceInstUsesWith(CI, Shuffle);
1938 Value *Shuffle =
1940 replaceInstUsesWith(CI, Shuffle);
  /src/external/apache2/llvm/dist/llvm/utils/unittest/googletest/src/
gtest-internal-inl.h 93 const char kShuffleFlag[] = "shuffle";
174 shuffle_ = GTEST_FLAG(shuffle);
196 GTEST_FLAG(shuffle) = shuffle_;
305 // Performs an in-place shuffle of a range of the vector's elements.
308 // shuffle to the end of the vector.
314 << "Invalid shuffle range start " << begin << ": must be in range [0, "
317 << "Invalid shuffle range finish " << end << ": must be in range ["
320 // Fisher-Yates shuffle, from
332 // Performs an in-place shuffle of the vector's elements.
334 inline void Shuffle(internal::Random* random, std::vector<E>* v)
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
TargetTransformInfoImpl.h 1068 auto *Shuffle = dyn_cast<ShuffleVectorInst>(U);
1069 if (!Shuffle)
1076 if (Shuffle->isExtractSubvectorMask(SubIndex))
1078 Shuffle->getShuffleMask(), SubIndex,
1080 else if (Shuffle->changesLength())
1082 else if (Shuffle->isIdentity())
1084 else if (Shuffle->isReverse())
1086 Shuffle->getShuffleMask(), 0, nullptr);
1087 else if (Shuffle->isSelect())
1089 Shuffle->getShuffleMask(), 0, nullptr)
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Analysis/
TargetTransformInfo.cpp 669 // A broadcast shuffle creates a uniform value.
1057 // We don't need a shuffle if we just want to have element 0 in position 0 of
1128 // Shuffle inputs must match.
1165 // Shuffle mask for pairwise operation must match.
1209 // We look for a sequence of shuffle,shuffle,add triples like the following
1275 // fadd, shuffle vector pair at a time.
1298 ShuffleVectorInst *Shuffle;
1299 std::tie(NextRdxOp, Shuffle) =
1302 // Check the current reduction operation and the shuffle use the same value
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/WebAssembly/
WebAssemblyISelLowering.cpp 174 // We have custom shuffle lowering to expose the shuffle mask
1626 return DAG.getNode(WebAssemblyISD::SHUFFLE, DL, Op.getValueType(), Ops);
1923 assert(VecType.is128BitVector() && "Unexpected shuffle vector type");
1941 return DAG.getNode(WebAssemblyISD::SHUFFLE, DL, Op.getValueType(), Ops);
2057 auto Shuffle = cast<ShuffleVectorSDNode>(N);
2061 // (shuffle (vNxT1 (bitcast (vNxT0 x))), undef, mask) ->
2062 // (vNxT1 (bitcast (vNxT0 (shuffle x, undef, mask))))
2075 SrcType, SDLoc(N), CastOp, DAG.getUNDEF(SrcType), Shuffle->getMask());
  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/
CodeGenPrepare.cpp 6894 // Create a bitcast (shuffle (insert (bitcast(..))))
6899 Value *Shuffle = Builder.CreateVectorSplat(NewVecType->getNumElements(), BC1);
6900 Value *BC2 = Builder.CreateBitCast(Shuffle, SVIVecType);
  /src/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/
PPCISelLowering.cpp 1761 /// isVPKUHUMShuffleMask - Return true if this is the shuffle mask for a
1792 /// isVPKUWUMShuffleMask - Return true if this is the shuffle mask for a
1827 /// isVPKUDUMShuffleMask - Return true if this is the shuffle mask for a
1897 /// isVMRGLShuffleMask - Return true if this is a shuffle mask suitable for
1922 /// isVMRGHShuffleMask - Return true if this is a shuffle mask suitable for
1951 * the shuffle mask. This is based on the of the endianness of the target
1965 * The mask to the shuffle vector instruction specifies the indices of the
1969 * 8. More info on the shuffle vector can be found in the
1983 * \param[in] N The shuffle vector SD Node to analyze
1987 * \return true iff this shuffle vector represents an even or odd word merg
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/SelectionDAG/
DAGCombiner.cpp 4889 // Xor/and/or are indifferent to the swizzle operation (shuffle of one value).
4891 // If both shuffles use the same mask, and both shuffle within a single
4894 // vector types from memory. In many cases this allows additional shuffle
4896 // There are other cases where moving the shuffle after the xor/and/or
4899 // or second operand, then it might still be profitable to move the shuffle
5663 // Try to convert a constant mask AND into a shuffle clear mask.
5665 if (SDValue Shuffle = XformToShuffleWithZero(N))
5666 return Shuffle;
6375 // Do this only if the resulting shuffle is legal.
12635 // bitcast(shuffle(bitcast(s0),bitcast(s1))) -> shuffle(s0,s1
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/AArch64/
AArch64ISelLowering.cpp 8184 // shuffle in combination with VEXTs.
8201 // be compatible with the shuffle we intend to construct. As a result
8228 "a shuffle can only come from building a vector from "
8269 // to construct a compatible shuffle either by concatenating it with UNDEF or
8287 // shuffle...
8343 // for the shuffle.
8355 // Final sanity check before we try to actually produce a shuffle.
8360 // The stars all align, our next step is to produce the mask for the shuffle.
8379 // This source is expected to fill ResMultiplier lanes of the final shuffle,
8391 LLVM_DEBUG(dbgs() << "Reshuffle failed: illegal shuffle mask\n")
    [all...]

Completed in 105 milliseconds