Displaying 6 results from an estimated 6 matches for "idx_2".
Did you mean:
idx_r
2019 Jul 23
2
[RFC] A new multidimensional array indexing intrinsic
...esentation of what's being proposed would help.
>
> Here's a best guess, switching the indexed base type to a non-integer for illustration purposes:
>
> %arrayidx = call i64 @llvm.multidim.array.index.i64.p0f64.i64.i64.i64.i64 double* %A, i64 %str_1, i64 %idx_1, i64 %str_2, i64 %idx_2
>
> According to the RFC, that would get lowered to this:
>
> %mul1 = mul nsw i64 %str_1, %idx_1
> %mul2 = mul1 nsw i64 %str_2, %idx_2
> %total = add nsw i64 %mul2, %mul1
> %arrayidx = getelementptr inbounds double, double* %A, i64 %total, !multidim !1
>
> The pro...
2019 Jul 22
1
[RFC] A new multidimensional array indexing intrinsic
...= llvm.multidim.array.index.* <ty> <ty>* <ptrval> {<stride>, <idx>}*
>
> It isn't clear to me what that means. The later example is also in a somewhat generalized form:
>
> %arrayidx = llvm.multidim.array.index.* i64 i64* %A, %str_1, %idx_1, %str_2, %idx_2
>
> Trying to expand this into something concrete it looks to me like the extra value-less type argument ('i64' immediately following the intrinsic name) won't work, and if I'm reading it correctly that's a necessary element. The GEP instruction accepts a raw type as a pse...
2019 Jul 22
2
[RFC] A new multidimensional array indexing intrinsic
...he index expression computed by the lowered GEP is guaranteed to be in a canonical form which allows the analysis
> to infer stride and index sizes.
>
> A multidim index of the form:
> ```
> %arrayidx = llvm.multidim.array.index.* i64 i64* %A, %str_1, %idx_1, %str_2, %idx_2
> ```
>
> is lowered to:
>
> ```
> %mul1 = mul nsw i64 %str_1, %idx_1
> %mul2 = mul1 nsw i64 %str_2, %idx_2
> %total = add nsw i64 %mul2, %mul1
> %arrayidx = getelementptr inbounds i64, i64* %A, i64 %total, !multidim !1
> ```
> wi...
2019 Jul 21
6
[RFC] A new multidimensional array indexing intrinsic
...data. This metadata will indicate that
the index expression computed by the lowered GEP is guaranteed to be
in a canonical form which allows the analysis
to infer stride and index sizes.
A multidim index of the form:
```
%arrayidx = llvm.multidim.array.index.* i64 i64* %A, %str_1, %idx_1,
%str_2, %idx_2
```
is lowered to:
```
%mul1 = mul nsw i64 %str_1, %idx_1
%mul2 = mul1 nsw i64 %str_2, %idx_2
%total = add nsw i64 %mul2, %mul1
%arrayidx = getelementptr inbounds i64, i64* %A, i64 %total, !multidim !1
```
with guarantees that the first term in each multiplication is the stride
and the second ter...
2019 Jul 22
2
[RFC] A new multidimensional array indexing intrinsic
...ndex expression computed by the lowered GEP is guaranteed to be in a canonical form which allows the analysis
>> to infer stride and index sizes.
>>
>> A multidim index of the form:
>> ```
>> %arrayidx = llvm.multidim.array.index.* i64 i64* %A, %str_1, %idx_1, %str_2, %idx_2
>> ```
>>
>> is lowered to:
>>
>> ```
>> %mul1 = mul nsw i64 %str_1, %idx_1
>> %mul2 = mul1 nsw i64 %str_2, %idx_2
>> %total = add nsw i64 %mul2, %mul1
>> %arrayidx = getelementptr inbounds i64, i64* %A, i64 %total, !multidim !1
>> ```
>...
2019 Jul 25
0
[RFC] A new multidimensional array indexing intrinsic
...uted by the lowered GEP is guaranteed to be in a canonical form which allows the analysis
>>> to infer stride and index sizes.
>>>
>>> A multidim index of the form:
>>> ```
>>> %arrayidx = llvm.multidim.array.index.* i64 i64* %A, %str_1, %idx_1, %str_2, %idx_2
>>> ```
>>>
>>> is lowered to:
>>>
>>> ```
>>> %mul1 = mul nsw i64 %str_1, %idx_1
>>> %mul2 = mul1 nsw i64 %str_2, %idx_2
>>> %total = add nsw i64 %mul2, %mul1
>>> %arrayidx = getelementptr inbounds i64, i64* %A, i64 %...