Skip to content

Commit ec8f183

Browse files
committed
Reorganise poison note
1 parent 69fc569 commit ec8f183

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

llvm/docs/LangRef.rst

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23657,7 +23657,9 @@ The final two are immediates and the result is a vector with the i1 element type
2365723657
Semantics:
2365823658
""""""""""
2365923659

23660-
In the case that ``%writeAfterRead`` is true, the
23660+
The intrinsic will return poison if ``%ptrA`` and ``%ptrB`` are within
23661+
VF * ``%elementSize`` of each other and ``%ptrA`` + VF * ``%elementSize`` wraps.
23662+
In other cases when ``%writeAfterRead`` is true, the
2366123663
'``llvm.experimental.get.alias.lane.mask.*``' intrinsics are semantically
2366223664
equivalent to:
2366323665

@@ -23666,7 +23668,9 @@ equivalent to:
2366623668
%diff = (%ptrB - %ptrA) / %elementSize
2366723669
%m[i] = (icmp ult i, %diff) || (%diff <= 0)
2366823670

23669-
Otherwise they are semantically equivalent to:
23671+
When the return value is not poison and ``%writeAfterRead`` is false, the
23672+
'``llvm.experimental.get.alias.lane.mask.*``' intrinsics are semantically
23673+
equivalent to:
2367023674

2367123675
::
2367223676

@@ -23675,12 +23679,9 @@ Otherwise they are semantically equivalent to:
2367523679

2367623680
where ``%m`` is a vector (mask) of active/inactive lanes with its elements
2367723681
indexed by ``i``, and ``%ptrA``, ``%ptrB`` are the two i64 arguments to
23678-
``llvm.experimental.get.alias.lane.mask.*``, ``%elementSize`` is the first
23679-
immediate argument, ``%abs`` is the absolute difference operation, ``%icmp`` is
23680-
an integer compare and ``ult`` the unsigned less-than comparison operator. The
23681-
subtraction between ``%ptrA`` and ``%ptrB`` could be negative. The
23682-
``%writeAfterRead`` argument is expected to be true if the ``%ptrB`` is stored
23683-
to after ``%ptrA`` is read from.
23682+
``llvm.experimental.get.alias.lane.mask.*`` and ``%elementSize`` is the first
23683+
immediate argument. The ``%writeAfterRead`` argument is expected to be true if
23684+
``%ptrB`` is stored to after ``%ptrA`` is read from.
2368423685
The above is equivalent to:
2368523686

2368623687
::
@@ -23697,9 +23698,6 @@ then lanes 3, 4, 5, 6 and 7 of the vector loaded from ``%ptrA``
2369723698
share addresses with lanes 0, 1, 2, 3, 4 and 5 from the vector stored to at
2369823699
``%ptrB``.
2369923700

23700-
The intrinsic will return poison if ``%ptrA`` and ``%ptrB`` are within
23701-
VF * ``%elementSize`` of each other and ``%ptrA`` + VF * ``%elementSize`` wraps.
23702-
2370323701

2370423702
Examples:
2370523703
"""""""""

0 commit comments

Comments
 (0)