| /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...] |