| 1640 | } |
| 1641 | |
| 1642 | std::vector<Value> createArrayPtrLoad(size_t RetSize, Type Ty, Value Ptr, |
| 1643 | Type PtrTy, uint32_t Align = 1, |
| 1644 | const char *Name = "") noexcept { |
| 1645 | std::vector<Value> ValVec; |
| 1646 | ValVec.reserve(RetSize); |
| 1647 | for (size_t I = 0; I < RetSize; ++I) { |
| 1648 | auto VPtr = createConstInBoundsGEP1_64(PtrTy, Ptr, I * Align, Name); |
| 1649 | auto TargetTy = Ty.getStructElementType(static_cast<unsigned int>(I)); |
| 1650 | ValVec.push_back( |
| 1651 | createLoad(TargetTy, createBitCast(VPtr, TargetTy.getPointerTo()))); |
| 1652 | } |
| 1653 | return ValVec; |
| 1654 | } |
| 1655 | |
| 1656 | void createArrayPtrStore(Span<const Value> Vals, Value Ptr, Type PtrTy, |
| 1657 | uint32_t Align = 1, const char *Name = "") noexcept { |
no test coverage detected