| 563 | } |
| 564 | |
| 565 | std::vector<const analysis::Constant*> Constant::GetVectorComponents( |
| 566 | analysis::ConstantManager* const_mgr) const { |
| 567 | std::vector<const analysis::Constant*> components; |
| 568 | const analysis::VectorConstant* a = this->AsVectorConstant(); |
| 569 | const analysis::Vector* vector_type = this->type()->AsVector(); |
| 570 | assert(vector_type != nullptr); |
| 571 | if (a != nullptr) { |
| 572 | for (uint32_t i = 0; i < vector_type->element_count(); ++i) { |
| 573 | components.push_back(a->GetComponents()[i]); |
| 574 | } |
| 575 | } else { |
| 576 | const analysis::Type* element_type = vector_type->element_type(); |
| 577 | const analysis::Constant* element_null_const = |
| 578 | const_mgr->GetConstant(element_type, {}); |
| 579 | for (uint32_t i = 0; i < vector_type->element_count(); ++i) { |
| 580 | components.push_back(element_null_const); |
| 581 | } |
| 582 | } |
| 583 | return components; |
| 584 | } |
| 585 | |
| 586 | } // namespace analysis |
| 587 | } // namespace opt |
no test coverage detected