Lines Matching refs:type

45 static uint32_t HiddenOffset(DataType::Type type, bool is_string_char_at) {  in HiddenOffset()  argument
48 : mirror::Array::DataOffset(DataType::Size(type)).Uint32Value(); in HiddenOffset()
87 DataType::Type type,
93 DataType::Type type, in IsSignExtensionAndGet() argument
100 switch (type) { in IsSignExtensionAndGet()
120 if (instruction->GetType() == type) { in IsSignExtensionAndGet()
121 switch (type) { in IsSignExtensionAndGet()
137 if (type == from && (from == DataType::Type::kInt8 || in IsSignExtensionAndGet()
145 return type == DataType::Type::kUint16 && in IsSignExtensionAndGet()
147 IsZeroExtensionAndGet(instruction->InputAt(0), type, /*out*/ operand); in IsSignExtensionAndGet()
158 DataType::Type type, in IsZeroExtensionAndGet() argument
165 switch (type) { in IsZeroExtensionAndGet()
185 if (instruction->GetType() == type) { in IsZeroExtensionAndGet()
186 switch (type) { in IsZeroExtensionAndGet()
202 if (type == from && from == DataType::Type::kUint16) { in IsZeroExtensionAndGet()
208 return type == DataType::Type::kInt16 && in IsZeroExtensionAndGet()
210 IsSignExtensionAndGet(instruction->InputAt(0), type, /*out*/ operand); in IsZeroExtensionAndGet()
222 DataType::Type type, in IsNarrowerOperands() argument
228 DataType::Type stype = HVecOperation::ToSignedType(type); in IsNarrowerOperands()
234 DataType::Type utype = HVecOperation::ToUnsignedType(type); in IsNarrowerOperands()
244 DataType::Type type, in IsNarrowerOperand() argument
249 DataType::Type stype = HVecOperation::ToSignedType(type); in IsNarrowerOperand()
255 DataType::Type utype = HVecOperation::ToUnsignedType(type); in IsNarrowerOperand()
441 DataType::Type type = a->GetType(); in GetNarrowerType() local
442 if (DataType::Size(b->GetType()) < DataType::Size(type)) { in GetNarrowerType()
443 type = b->GetType(); in GetNarrowerType()
446 DataType::Size(a->InputAt(0)->GetType()) < DataType::Size(type)) { in GetNarrowerType()
447 type = a->InputAt(0)->GetType(); in GetNarrowerType()
450 DataType::Size(b->InputAt(0)->GetType()) < DataType::Size(type)) { in GetNarrowerType()
451 type = b->InputAt(0)->GetType(); in GetNarrowerType()
453 return type; in GetNarrowerType()
968 if (i->type == j->type && (i->lhs || j->lhs)) { in ShouldVectorize()
1005 Alignment alignment = ComputeAlignment(i->offset, i->type, i->is_string_char_at); in ShouldVectorize()
1013 : ((desired_alignment - offset) >> DataType::SizeShift(i->type)); in ShouldVectorize()
1083 uint32_t shift = DataType::SizeShift(vector_dynamic_peeling_candidate_->type); in Vectorize()
1085 uint32_t hidden_offset = HiddenOffset(vector_dynamic_peeling_candidate_->type, in Vectorize()
1286 DataType::Type type = instruction->AsArraySet()->GetComponentType(); in VectorizeDef() local
1293 if (DataType::Size(type) <= 2) { in VectorizeDef()
1296 if (TrySetVectorType(type, &restrictions) && in VectorizeDef()
1299 VectorizeUse(node, value, generate_code, type, restrictions)) { in VectorizeDef()
1302 GenerateVecMem(instruction, vector_map_->Get(index), vector_map_->Get(value), offset, type); in VectorizeDef()
1304 vector_refs_->insert(ArrayReference(base, offset, type, /*lhs*/ true)); in VectorizeDef()
1315 DataType::Type type = instruction->GetType(); in VectorizeDef() local
1317 if (VectorizeSADIdiom(node, instruction, generate_code, type, restrictions) || in VectorizeDef()
1318 VectorizeDotProdIdiom(node, instruction, generate_code, type, restrictions) || in VectorizeDef()
1319 (TrySetVectorType(type, &restrictions) && in VectorizeDef()
1320 VectorizeUse(node, instruction, generate_code, type, restrictions))) { in VectorizeDef()
1343 DataType::Type type, in VectorizeUse() argument
1357 GenerateVecInv(instruction, type); in VectorizeUse()
1374 if (HVecOperation::ToSignedType(type) == HVecOperation::ToSignedType(instruction->GetType()) && in VectorizeUse()
1379 GenerateVecMem(instruction, vector_map_->Get(index), nullptr, offset, type); in VectorizeUse()
1381 vector_refs_->insert(ArrayReference(base, offset, type, /*lhs*/ false, is_string_char_at)); in VectorizeUse()
1407 uint32_t size_vec = DataType::Size(type); in VectorizeUse()
1416 VectorizeUse(node, opa, generate_code, type, restrictions | kNoHiBits)) || in VectorizeUse()
1419 VectorizeUse(node, opa, generate_code, type, restrictions))) { in VectorizeUse()
1424 GenerateVecOp(instruction, vector_map_->Get(opa), nullptr, type); in VectorizeUse()
1430 DCHECK_EQ(to, type); in VectorizeUse()
1437 GenerateVecOp(instruction, vector_map_->Get(opa), nullptr, type); in VectorizeUse()
1446 if (VectorizeUse(node, opa, generate_code, type, restrictions)) { in VectorizeUse()
1448 GenerateVecOp(instruction, vector_map_->Get(opa), nullptr, type); in VectorizeUse()
1463 if (VectorizeUse(node, opa, generate_code, type, restrictions) && in VectorizeUse()
1464 VectorizeUse(node, opb, generate_code, type, restrictions)) { in VectorizeUse()
1466 GenerateVecOp(instruction, vector_map_->Get(opa), vector_map_->Get(opb), type); in VectorizeUse()
1472 if (VectorizeHalvingAddIdiom(node, instruction, generate_code, type, restrictions)) { in VectorizeUse()
1487 (!IsNarrowerOperand(opa, type, &r, &is_unsigned) || is_unsigned)) { in VectorizeUse()
1490 (!IsNarrowerOperand(opa, type, &r, &is_unsigned) || !is_unsigned)) { in VectorizeUse()
1501 if (VectorizeUse(node, r, generate_code, type, restrictions) && in VectorizeUse()
1504 int64_t max_distance = DataType::Size(type) * 8; in VectorizeUse()
1507 GenerateVecOp(instruction, vector_map_->Get(r), opb, type); in VectorizeUse()
1520 (!IsNarrowerOperand(opa, type, &r, &is_unsigned) || is_unsigned)) { in VectorizeUse()
1528 if (VectorizeUse(node, r, generate_code, type, restrictions)) { in VectorizeUse()
1533 HVecOperation::ToProperType(type, is_unsigned)); in VectorizeUse()
1553 bool HLoopOptimization::TrySetVectorType(DataType::Type type, uint64_t* restrictions) { in TrySetVectorType() argument
1560 switch (type) { in TrySetVectorType()
1565 return TrySetVectorLength(type, 8); in TrySetVectorType()
1569 return TrySetVectorLength(type, 4); in TrySetVectorType()
1572 return TrySetVectorLength(type, 2); in TrySetVectorType()
1580 switch (type) { in TrySetVectorType()
1585 return TrySetVectorLength(type, 16); in TrySetVectorType()
1589 return TrySetVectorLength(type, 8); in TrySetVectorType()
1592 return TrySetVectorLength(type, 4); in TrySetVectorType()
1595 return TrySetVectorLength(type, 2); in TrySetVectorType()
1598 return TrySetVectorLength(type, 4); in TrySetVectorType()
1601 return TrySetVectorLength(type, 2); in TrySetVectorType()
1609 switch (type) { in TrySetVectorType()
1621 return TrySetVectorLength(type, 16); in TrySetVectorType()
1629 return TrySetVectorLength(type, 8); in TrySetVectorType()
1636 return TrySetVectorLength(type, 8); in TrySetVectorType()
1639 return TrySetVectorLength(type, 4); in TrySetVectorType()
1642 return TrySetVectorLength(type, 2); in TrySetVectorType()
1645 return TrySetVectorLength(type, 4); in TrySetVectorType()
1648 return TrySetVectorLength(type, 2); in TrySetVectorType()
1671 void HLoopOptimization::GenerateVecInv(HInstruction* org, DataType::Type type) { in GenerateVecInv() argument
1688 if (type != input_type && (type == DataType::Type::kInt64 || in GenerateVecInv()
1691 new (global_allocator_) HTypeConversion(type, input, kNoDexPc)); in GenerateVecInv()
1694 HVecReplicateScalar(global_allocator_, input, type, vector_length_, kNoDexPc); in GenerateVecInv()
1719 DataType::Type type) { in GenerateVecMem() argument
1728 global_allocator_, base, opa, opb, type, org->GetSideEffects(), vector_length_, dex_pc); in GenerateVecMem()
1734 type, in GenerateVecMem()
1743 DataType::Size(vector_dynamic_peeling_candidate_->type) == DataType::Size(type) && in GenerateVecMem()
1750 ComputeAlignment(offset, type, is_string_char_at, vector_static_peeling_factor_)); in GenerateVecMem()
1807 DataType::Type type = red_vector->GetPackedType(); in GenerateVecReductionPhiInputs() local
1812 type, in GenerateVecReductionPhiInputs()
1820 type, in GenerateVecReductionPhiInputs()
1842 DataType::Type type = input_vector->GetPackedType(); in ReduceAndExtractIfNeeded() local
1850 global_allocator_, instruction, type, vector_length, kind, kNoDexPc); in ReduceAndExtractIfNeeded()
1853 global_allocator_, reduce, type, vector_length, 0, kNoDexPc); in ReduceAndExtractIfNeeded()
1872 DataType::Type type) { in GenerateVecOp() argument
1880 new (global_allocator_) HVecNeg(global_allocator_, opa, type, vector_length_, dex_pc), in GenerateVecOp()
1885 new (global_allocator_) HVecNot(global_allocator_, opa, type, vector_length_, dex_pc), in GenerateVecOp()
1890 new (global_allocator_) HVecNot(global_allocator_, opa, type, vector_length_, dex_pc), in GenerateVecOp()
1895 new (global_allocator_) HVecCnv(global_allocator_, opa, type, vector_length_, dex_pc), in GenerateVecOp()
1899 new (global_allocator_) HVecAdd(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1903 new (global_allocator_) HVecSub(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1907 new (global_allocator_) HVecMul(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1911 new (global_allocator_) HVecDiv(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1915 new (global_allocator_) HVecAnd(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1919 new (global_allocator_) HVecOr(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1923 new (global_allocator_) HVecXor(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1927 new (global_allocator_) HVecShl(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1931 new (global_allocator_) HVecShr(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1935 new (global_allocator_) HVecUShr(global_allocator_, opa, opb, type, vector_length_, dex_pc), in GenerateVecOp()
1940 new (global_allocator_) HVecAbs(global_allocator_, opa, type, vector_length_, dex_pc), in GenerateVecOp()
1966 DataType::Type type, in VectorizeHalvingAddIdiom() argument
1990 if (!IsNarrowerOperands(a, b, type, &r, &s, &is_unsigned)) { in VectorizeHalvingAddIdiom()
2005 if (VectorizeUse(node, r, generate_code, type, restrictions) && in VectorizeHalvingAddIdiom()
2006 VectorizeUse(node, s, generate_code, type, restrictions)) { in VectorizeHalvingAddIdiom()
2013 HVecOperation::ToProperType(type, is_unsigned), in VectorizeHalvingAddIdiom()
2019 GenerateVecOp(instruction, vector_map_->Get(r), vector_map_->Get(s), type); in VectorizeHalvingAddIdiom()
2190 DataType::Type type, in ComputeAlignment() argument
2198 HiddenOffset(type, is_string_char_at) + (value + peeling) * DataType::Size(type); in ComputeAlignment()
2202 return Alignment(DataType::Size(type), 0); in ComputeAlignment()