(builder: LowLevelIRBuilder, vecobj: Value, index: Value)
| 250 | |
| 251 | |
| 252 | def vec_item_ptr(builder: LowLevelIRBuilder, vecobj: Value, index: Value) -> Value: |
| 253 | items_addr = vec_items(builder, vecobj) |
| 254 | assert isinstance(vecobj.type, RVec) |
| 255 | # TODO: Do we need to care about alignment? |
| 256 | item_type = vecobj.type.item_type |
| 257 | if isinstance(item_type, RPrimitive): |
| 258 | item_size = item_type.size |
| 259 | elif isinstance(item_type, RVec): |
| 260 | item_size = 2 * PLATFORM_SIZE |
| 261 | else: |
| 262 | item_size = object_rprimitive.size |
| 263 | delta = builder.int_mul(index, item_size) |
| 264 | return builder.int_add(items_addr, delta) |
| 265 | |
| 266 | |
| 267 | def vec_load_mem_item( |
no test coverage detected
searching dependent graphs…