Searched defs:Ty (Results 176 - 200 of 237) sorted by relevance

12345678910

/external/llvm/lib/Transforms/Scalar/
H A DScalarReplAggregates.cpp2534 static bool HasPadding(Type *Ty, const DataLayout &TD) { argument
2535 if (ArrayType *ATy = dyn_cast<ArrayType>(Ty)) {
2536 Ty = ATy->getElementType();
2537 return TD.getTypeSizeInBits(Ty) != TD.getTypeAllocSizeInBits(Ty);
2541 StructType *STy = cast<StructType>(Ty);
H A DSROA.cpp386 void handleLoadOrStore(Type *Ty, Instruction &I, const APInt &Offset, argument
397 Ty->isIntegerTy() && !IsVolatile && Offset == 0 && Size >= AllocSize;
919 Type *Ty = 0; local
949 if (Ty && Ty != UserTy)
952 Ty = UserTy;
954 return Ty;
1173 /// \brief Get a natural GEP off of the BasePtr walking through Ty toward
1177 /// Indices, and arrived at the Ty type. The goal is to continue to GEP with
1183 Value *BasePtr, Type *Ty, Typ
1182 getNaturalGEPWithType(IRBuilderTy &IRB, const DataLayout &DL, Value *BasePtr, Type *Ty, Type *TargetTy, SmallVectorImpl<Value *> &Indices) argument
1220 getNaturalGEPRecursively(IRBuilderTy &IRB, const DataLayout &DL, Value *Ptr, Type *Ty, APInt &Offset, Type *TargetTy, SmallVectorImpl<Value *> &Indices) argument
1293 PointerType *Ty = cast<PointerType>(Ptr->getType()); local
1451 convertValue(const DataLayout &DL, IRBuilderTy &IRB, Value *V, Type *Ty) argument
1473 isVectorPromotionViableForSlice( const DataLayout &DL, AllocaSlices &S, uint64_t SliceBeginOffset, uint64_t SliceEndOffset, VectorType *Ty, uint64_t ElementSize, AllocaSlices::const_iterator I) argument
1553 VectorType *Ty = dyn_cast<VectorType>(AllocaTy); local
1700 extractInteger(const DataLayout &DL, IRBuilderTy &IRB, Value *V, IntegerType *Ty, uint64_t Offset, const Twine &Name) argument
1726 IntegerType *Ty = cast<IntegerType>(V->getType()); local
1787 VectorType *Ty = dyn_cast<VectorType>(V->getType()); local
1979 getOffsetTypeAlign(Type *Ty, uint64_t Offset) argument
2707 emitSplitOps(Type *Ty, Value *&Agg, const Twine &Name) argument
2751 emitFunc(Type *Ty, Value *&Agg, const Twine &Name) argument
2782 emitFunc(Type *Ty, Value *&Agg, const Twine &Name) argument
2835 stripAggregateTypeWrapping(const DataLayout &DL, Type *Ty) argument
2873 getTypePartition(const DataLayout &DL, Type *Ty, uint64_t Offset, uint64_t Size) argument
[all...]
/external/llvm/lib/Transforms/Vectorize/
H A DSLPVectorizer.cpp179 Type *Ty = VL[0]->getType(); local
181 if (VL[i]->getType() != Ty)
184 return Ty;
293 int getGatherCost(Type *Ty);
315 Value *Gather(ArrayRef<Value *> VL, VectorType *Ty);
686 Type *Ty = cast<Instruction>(VL[i])->getOperand(0)->getType(); local
687 if (Ty != SrcTy || Ty->isAggregateType() || Ty->isVectorTy()) {
940 int BoUpSLP::getGatherCost(Type *Ty) { argument
1003 Type *Ty = cast<PointerType>(PtrA->getType())->getElementType(); local
1105 Gather(ArrayRef<Value *> VL, VectorType *Ty) argument
1448 Type *Ty = Scalar->getType(); local
1768 Type *Ty = SI->getValueOperand()->getType(); local
1805 Type *Ty = VL[i]->getType(); local
[all...]
/external/valgrind/main/mpi/
H A Dlibmpiwrap.c698 typedef struct { int val; int loc; } Ty; typedef in typeref:struct:__anon27754
699 f(base + offsetof(Ty,val), sizeof(int));
700 f(base + offsetof(Ty,loc), sizeof(int));
704 typedef struct { long val; int loc; } Ty; typedef in typeref:struct:__anon27755
705 f(base + offsetof(Ty,val), sizeof(long));
706 f(base + offsetof(Ty,loc), sizeof(int));
710 typedef struct { double val; int loc; } Ty; typedef in typeref:struct:__anon27756
711 f(base + offsetof(Ty,val), sizeof(double));
712 f(base + offsetof(Ty,loc), sizeof(int));
716 typedef struct { short val; int loc; } Ty; typedef in typeref:struct:__anon27757
722 typedef struct { float val; int loc; } Ty; typedef in typeref:struct:__anon27758
728 typedef struct { long double val; int loc; } Ty; typedef in typeref:struct:__anon27759
[all...]
/external/clang/lib/Analysis/
H A DCFG.cpp841 QualType Ty = (*I)->getType(); local
842 if (Ty->isReferenceType()) {
843 Ty = getReferenceInitTemporaryType(*Context, (*I)->getInit());
845 Ty = Context->getBaseElementType(Ty);
847 const CXXDestructorDecl *Dtor = Ty->getAsCXXRecordDecl()->getDestructor();
1427 QualType Ty = E->getType(); local
1428 if (Ty->isFunctionPointerType())
1429 Ty = Ty
[all...]
/external/clang/lib/CodeGen/
H A DCGCall.cpp385 argTypes.push_back(Context.getCanonicalParamType(i->Ty));
399 argTypes.push_back(Context.getCanonicalParamType(i->Ty));
553 CodeGenFunction::ExpandTypeFromArgs(QualType Ty, LValue LV, argument
558 if (const ConstantArrayType *AT = getContext().getAsConstantArrayType(Ty)) {
566 } else if (const RecordType *RT = Ty->getAs<RecordType>()) {
601 } else if (const ComplexType *CT = Ty->getAs<ComplexType>()) {
648 /// CoerceIntOrPtrToIntOrPtr - Convert a value Val to the specific Ty where both
656 llvm::Type *Ty,
658 if (Val->getType() == Ty)
663 if (isa<llvm::PointerType>(Ty))
655 CoerceIntOrPtrToIntOrPtr(llvm::Value *Val, llvm::Type *Ty, CodeGenFunction &CGF) argument
707 CreateCoercedLoad(llvm::Value *SrcPtr, llvm::Type *Ty, CodeGenFunction &CGF) argument
1273 QualType Ty = info_it->type; local
2197 ExpandTypeToArgs(QualType Ty, RValue RV, SmallVectorImpl<llvm::Value *> &Args, llvm::FunctionType *IRFuncTy) argument
2626 EmitVAArg(llvm::Value *VAListAddr, QualType Ty) argument
[all...]
H A DCGClass.cpp1652 QualType Ty = E->getType(); local
1654 EmitAggregateCopy(This, Src, Ty);
1778 QualType Ty = getContext().getTagDeclType(Ctor->getParent()); local
1779 CharUnits Alignment = getContext().getTypeAlignInChars(Ty);
1995 llvm::Type *Ty) {
1996 llvm::Value *VTablePtrSrc = Builder.CreateBitCast(This, Ty->getPointerTo());
1994 GetVTablePtr(llvm::Value *This, llvm::Type *Ty) argument
H A DCodeGenModule.cpp1336 llvm::Type *Ty,
1350 if (Entry->getType()->getElementType() == Ty)
1354 return llvm::ConstantExpr::getBitCast(Entry, Ty->getPointerTo());
1371 if (isa<llvm::FunctionType>(Ty)) {
1372 FTy = cast<llvm::FunctionType>(Ty);
1434 assert(F->getType()->getElementType() == Ty);
1438 llvm::Type *PTy = llvm::PointerType::getUnqual(Ty);
1442 /// GetAddrOfFunction - Return the address of the given function. If Ty is
1446 llvm::Type *Ty,
1449 if (!Ty)
1335 GetOrCreateLLVMFunction(StringRef MangledName, llvm::Type *Ty, GlobalDecl GD, bool ForVTable, llvm::AttributeSet ExtraAttrs) argument
1445 GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty, bool ForVTable) argument
1477 isTypeConstant(QualType Ty, bool ExcludeCtor) argument
1499 GetOrCreateLLVMGlobal(StringRef MangledName, llvm::PointerType *Ty, const VarDecl *D, bool UnnamedAddr) argument
1575 CreateOrReplaceCXXRuntimeVariable(StringRef Name, llvm::Type *Ty, llvm::GlobalValue::LinkageTypes Linkage) argument
1617 GetAddrOfGlobalVar(const VarDecl *D, llvm::Type *Ty) argument
1634 CreateRuntimeVariable(llvm::Type *Ty, StringRef Name) argument
2026 llvm::FunctionType *Ty = getTypes().GetFunctionType(FI); local
2245 llvm::Type *Ty = getTypes().ConvertType(getContext().IntTy); local
2267 llvm::Type *Ty = getTypes().ConvertType(getContext().UnsignedIntTy); local
2357 llvm::Type *Ty = getTypes().ConvertType(getContext().IntTy); local
2441 llvm::Type *Ty = getTypes().ConvertType(getContext().UnsignedIntTy); local
[all...]
/external/clang/lib/Driver/
H A DToolChains.cpp70 types::ID Ty = types::lookupTypeForExtension(Ext); local
73 if (Ty == types::TY_PP_Asm)
76 return Ty;
/external/clang/lib/Parse/
H A DParseDecl.cpp2271 ParsedType Ty = ParseTypeName().get(); local
2274 Ty.getAsOpaquePtr(), TypeRange);
/external/clang/lib/StaticAnalyzer/Core/
H A DExprEngine.cpp2304 QualType Ty = Init->getTypeSourceInfo()->getType(); local
2305 Ty = Ty.getLocalUnqualifiedType();
2307 Ty.print(Out, LO);
H A DRegionStore.cpp514 QualType Ty);
536 QualType Ty);
1568 QualType Ty = R->getValueType();
1569 return getBindingForFieldOrElementCommon(B, R, Ty);
1576 QualType Ty) {
1584 return svalBuilder.makeZeroVal(Ty);
1632 QualType Ty) {
1668 if (Optional<SVal> D = getBindingForDerivedDefaultValue(B, Base, R, Ty)) {
1901 QualType Ty = TR->getValueType(); local
1902 if (Ty
1573 getBindingForDerivedDefaultValue(RegionBindingsConstRef B, const MemRegion *superR, const TypedValueRegion *R, QualType Ty) argument
1630 getBindingForFieldOrElementCommon(RegionBindingsConstRef B, const TypedValueRegion *R, QualType Ty) argument
[all...]
/external/llvm/include/llvm/IR/
H A DIRBuilder.h831 AllocaInst *CreateAlloca(Type *Ty, Value *ArraySize = 0, argument
833 return Insert(new AllocaInst(Ty, ArraySize), Name);
1253 PHINode *CreatePHI(Type *Ty, unsigned NumReservedValues, argument
1255 return Insert(PHINode::Create(Ty, NumReservedValues), Name);
1299 VAArgInst *CreateVAArg(Value *List, Type *Ty, const Twine &Name = "") { argument
1300 return Insert(new VAArgInst(List, Ty), Name);
1346 LandingPadInst *CreateLandingPad(Type *Ty, Value *PersFn, unsigned NumClauses, argument
1348 return Insert(LandingPadInst::Create(Ty, PersFn, NumClauses), Name);
H A DInstructions.h64 explicit AllocaInst(Type *Ty, Value *ArraySize = 0,
66 AllocaInst(Type *Ty, Value *ArraySize,
69 AllocaInst(Type *Ty, const Twine &Name, Instruction *InsertBefore = 0);
70 AllocaInst(Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd);
72 AllocaInst(Type *Ty, Value *ArraySize, unsigned Align,
74 AllocaInst(Type *Ty, Value *ArraySize, unsigned Align,
703 inline Type *checkGEPType(Type *Ty) { argument
704 assert(Ty && "Invalid GetElementPtrInst indices for type!");
705 return Ty;
1519 VAArgInst(Value *List, Type *Ty, cons argument
1524 VAArgInst(Value *List, Type *Ty, const Twine &NameStr, BasicBlock *InsertAtEnd) argument
1996 PHINode(Type *Ty, unsigned NumReservedValues, const Twine &NameStr = �, Instruction *InsertBefore = 0) argument
2004 PHINode(Type *Ty, unsigned NumReservedValues, const Twine &NameStr, BasicBlock *InsertAtEnd) argument
2021 Create(Type *Ty, unsigned NumReservedValues, const Twine &NameStr = �, Instruction *InsertBefore = 0) argument
2026 Create(Type *Ty, unsigned NumReservedValues, const Twine &NameStr, BasicBlock *InsertAtEnd) argument
[all...]
/external/llvm/include/llvm/TableGen/
H A DRecord.h135 inline raw_ostream &operator<<(raw_ostream &OS, const RecTy &Ty) { argument
136 Ty.print(OS);
290 /// ListRecTy - 'list<Ty>' - Represent a list of values, all of which must be of
294 RecTy *Ty; member in class:llvm::ListRecTy
295 explicit ListRecTy(RecTy *T) : RecTy(ListRecTyKind), Ty(T) {}
303 RecTy *getElementType() const { return Ty; }
490 virtual Init *convertInitializerTo(RecTy *Ty) const = 0;
557 RecTy *Ty; member in class:llvm::TypedInit
563 explicit TypedInit(InitKind K, RecTy *T) : Init(K), Ty(T) {}
570 RecTy *getType() const { return Ty; }
[all...]
/external/llvm/lib/CodeGen/AsmPrinter/
H A DDwarfDebug.cpp121 DIType Ty = Var.getType(); local
149 DIType subType = Ty;
150 unsigned tag = Ty.getTag();
153 DIDerivedType DTy = DIDerivedType(Ty);
167 return Ty;
/external/llvm/lib/IR/
H A DInstructions.cpp834 AllocaInst::AllocaInst(Type *Ty, Value *ArraySize, argument
836 : UnaryInstruction(PointerType::getUnqual(Ty), Alloca,
837 getAISize(Ty->getContext(), ArraySize), InsertBefore) {
839 assert(!Ty->isVoidTy() && "Cannot allocate void!");
843 AllocaInst::AllocaInst(Type *Ty, Value *ArraySize, argument
845 : UnaryInstruction(PointerType::getUnqual(Ty), Alloca,
846 getAISize(Ty->getContext(), ArraySize), InsertAtEnd) {
848 assert(!Ty->isVoidTy() && "Cannot allocate void!");
852 AllocaInst::AllocaInst(Type *Ty, const Twine &Name, argument
854 : UnaryInstruction(PointerType::getUnqual(Ty), Alloc
861 AllocaInst(Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
870 AllocaInst(Type *Ty, Value *ArraySize, unsigned Align, const Twine &Name, Instruction *InsertBefore) argument
879 AllocaInst(Type *Ty, Value *ArraySize, unsigned Align, const Twine &Name, BasicBlock *InsertAtEnd) argument
1732 BinaryOperator(BinaryOps iType, Value *S1, Value *S2, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
1745 BinaryOperator(BinaryOps iType, Value *S1, Value *S2, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2325 Create(Instruction::CastOps op, Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2346 Create(Instruction::CastOps op, Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2367 CreateZExtOrBitCast(Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2375 CreateZExtOrBitCast(Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2383 CreateSExtOrBitCast(Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2391 CreateSExtOrBitCast(Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2399 CreateTruncOrBitCast(Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2407 CreateTruncOrBitCast(Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2415 CreatePointerCast(Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2432 CreatePointerCast(Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2448 CreateIntegerCast(Value *C, Type *Ty, bool isSigned, const Twine &Name, Instruction *InsertBefore) argument
2462 CreateIntegerCast(Value *C, Type *Ty, bool isSigned, const Twine &Name, BasicBlock *InsertAtEnd) argument
2476 CreateFPCast(Value *C, Type *Ty, const Twine &Name, Instruction *InsertBefore) argument
2489 CreateFPCast(Value *C, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd) argument
2795 TruncInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2801 TruncInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2807 ZExtInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2813 ZExtInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2818 SExtInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2824 SExtInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2830 FPTruncInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2836 FPTruncInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2842 FPExtInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2848 FPExtInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2854 UIToFPInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2860 UIToFPInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2866 SIToFPInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2872 SIToFPInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2878 FPToUIInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2884 FPToUIInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2890 FPToSIInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2896 FPToSIInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2902 PtrToIntInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2908 PtrToIntInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2914 IntToPtrInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2920 IntToPtrInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
2926 BitCastInst( Value *S, Type *Ty, const Twine &Name, Instruction *InsertBefore ) argument
2932 BitCastInst( Value *S, Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd ) argument
[all...]
/external/llvm/lib/Target/ARM/
H A DARMFastISel.cpp179 bool isTypeLegal(Type *Ty, MVT &VT);
180 bool isLoadTypeLegal(Type *Ty, MVT &VT);
773 bool ARMFastISel::isTypeLegal(Type *Ty, MVT &VT) { argument
774 EVT evt = TLI.getValueType(Ty, true);
785 bool ARMFastISel::isLoadTypeLegal(Type *Ty, MVT &VT) { argument
786 if (isTypeLegal(Ty, VT)) return true;
814 if (PointerType *Ty = dyn_cast<PointerType>(Obj->getType()))
815 if (Ty->getAddressSpace() > 255)
1407 Type *Ty = Src1Value->getType(); local
1408 EVT SrcEVT = TLI.getValueType(Ty, tru
1594 Type *Ty = I->getType(); local
1730 Type *Ty = I->getType(); local
1758 Type *Ty = I->getType(); local
1825 Type *Ty = I->getType(); local
[all...]
/external/llvm/lib/Target/X86/
H A DX86InstrInfo.cpp4141 Type *Ty; local
4144 Ty = Type::getFloatTy(MF.getFunction()->getContext());
4146 Ty = Type::getDoubleTy(MF.getFunction()->getContext());
4148 Ty = VectorType::get(Type::getInt32Ty(MF.getFunction()->getContext()), 8);
4150 Ty = VectorType::get(Type::getInt32Ty(MF.getFunction()->getContext()), 4);
4153 const Constant *C = IsAllOnes ? Constant::getAllOnesValue(Ty) :
4154 Constant::getNullValue(Ty);
/external/llvm/lib/Transforms/IPO/
H A DGlobalOpt.cpp323 Type *Ty = Types.pop_back_val(); local
324 switch (Ty->getTypeID()) {
329 SequentialType *STy = cast<SequentialType>(Ty);
334 StructType *STy = cast<StructType>(Ty);
671 Type *Ty = Init->getType(); local
681 if (StructType *STy = dyn_cast<StructType>(Ty)) {
703 } else if (SequentialType *STy = dyn_cast<SequentialType>(Ty)) {
2727 Type *Ty = AI->getType()->getElementType(); local
2728 AllocaTmps.push_back(new GlobalVariable(Ty, false,
2730 UndefValue::get(Ty),
[all...]
/external/llvm/lib/Transforms/Instrumentation/
H A DAddressSanitizer.cpp502 Type *Ty = AI->getAllocatedType(); local
503 uint64_t SizeInBytes = ASan.TD->getTypeAllocSize(Ty);
800 Type *Ty = cast<PointerType>(G->getType())->getElementType(); local
804 if (!Ty->isSized()) return false;
936 Type *Ty = PtrTy->getElementType(); local
937 uint64_t SizeInBytes = TD->getTypeAllocSize(Ty);
956 StructType *NewTy = StructType::get(Ty, RightRedZoneTy, NULL);
H A DMemorySanitizer.cpp618 Type *Ty = V->getType(); local
619 Type *NoVecTy = getShadowTyNoVec(Ty);
620 if (Ty == NoVecTy) return V;
1102 size_t VectorOrPrimitiveTypeSizeInBits(Type *Ty) { argument
1103 assert(!(Ty->isVectorTy() && Ty->getScalarType()->isPointerTy()) &&
1105 return Ty->isVectorTy() ?
1106 Ty->getVectorNumElements() * Ty->getScalarSizeInBits() :
1107 Ty
1487 Type *Ty = I.getArgOperand(i)->getType(); local
[all...]
/external/llvm/lib/Transforms/ObjCARC/
H A DObjCARCOpts.cpp1449 Type *Ty = CI->getArgOperand(0)->getType(); local
1450 new StoreInst(UndefValue::get(cast<PointerType>(Ty)->getElementType()),
1451 Constant::getNullValue(Ty),
1468 Type *Ty = CI->getArgOperand(0)->getType(); local
1469 new StoreInst(UndefValue::get(cast<PointerType>(Ty)->getElementType()),
1470 Constant::getNullValue(Ty),
/external/clang/include/clang/AST/
H A DASTContext.h922 bool BlockRequiresCopying(QualType Ty, const VarDecl *D);
928 bool getByrefLifetime(QualType Ty,
977 QualType getVariableArrayDecayedType(QualType Ty) const;
1442 return getQualifiedType(split.Ty, split.Quals);
1530 Qualifiers::GC getObjCGCAttrKind(QualType Ty) const;
1541 static bool isObjCNSObjectType(QualType Ty) { argument
1542 return Ty->isObjCNSObjectType();
H A DDeclCXX.h2838 UnresolvedUsingValueDecl(DeclContext *DC, QualType Ty, argument
2843 NameInfo.getLoc(), NameInfo.getName(), Ty),

Completed in 1692 milliseconds

12345678910