@@ -1401,16 +1401,19 @@ def Vector_TransferReadOp :
1401
1401
permutation or broadcasting. Elements whose corresponding mask element is
1402
1402
`0` are masked out and replaced with `padding`.
1403
1403
1404
- An optional boolean array attribute `in_bounds` specifies for every vector
1405
- dimension if the transfer is guaranteed to be within the source bounds. If
1406
- specified, the `in_bounds` array length has to be equal to the vector rank.
1407
- If set to "false", accesses (including the starting point) may run
1404
+ For every vector dimension, the boolean array attribute `in_bounds`
1405
+ specifies if the transfer is guaranteed to be within the source bounds. If
1406
+ set to "false", accesses (including the starting point) may run
1408
1407
out-of-bounds along the respective vector dimension as the index increases.
1409
- Broadcast dimensions must always be in-bounds. In absence of the attribute,
1410
- accesses along all vector dimensions (except for broadcasts) may run
1411
- out-of-bounds. A `vector.transfer_read` can be lowered to a simple load if
1412
- all dimensions are specified to be within bounds and no `mask` was
1413
- specified. Note that non-vector dimensions *must* always be in-bounds.
1408
+ Non-vector and broadcast dimensions *must* always be in-bounds. The
1409
+ `in_bounds` array length has to be equal to the vector rank. This attribute
1410
+ has a default value: `false` (i.e. "out-of-bounds"). When skipped in the
1411
+ textual IR, the default value is assumed. Similarly, the OP printer will
1412
+ omit this attribute when all dimensions are out-of-bounds (i.e. the default
1413
+ value is used).
1414
+
1415
+ A `vector.transfer_read` can be lowered to a simple load if all dimensions
1416
+ are specified to be within bounds and no `mask` was specified.
1414
1417
1415
1418
This operation is called 'read' by opposition to 'load' because the
1416
1419
super-vector granularity is generally not representable with a single
@@ -1643,15 +1646,19 @@ def Vector_TransferWriteOp :
1643
1646
any permutation. Elements whose corresponding mask element is `0` are
1644
1647
masked out.
1645
1648
1646
- An optional boolean array attribute `in_bounds` specifies for every vector
1647
- dimension if the transfer is guaranteed to be within the source bounds. If
1648
- specified, the `in_bounds` array length has to be equal to the vector rank.
1649
- If set to "false", accesses (including the starting point) may run
1649
+ For every vector dimension, the boolean array attribute `in_bounds`
1650
+ specifies if the transfer is guaranteed to be within the source bounds. If
1651
+ set to "false", accesses (including the starting point) may run
1650
1652
out-of-bounds along the respective vector dimension as the index increases.
1651
- In absence of the attribute, accesses along all vector dimensions may run
1652
- out-of-bounds. A `vector.transfer_write` can be lowered to a simple store if
1653
- all dimensions are specified to be within bounds and no `mask` was
1654
- specified. Note that non-vector dimensions *must* always be in-bounds.
1653
+ Non-vector and broadcast dimensions *must* always be in-bounds. The
1654
+ `in_bounds` array length has to be equal to the vector rank. This attribute
1655
+ has a default value: `false` (i.e. "out-of-bounds"). When skipped in the
1656
+ textual IR, the default value is assumed. Similarly, the OP printer will
1657
+ omit this attribute when all dimensions are out-of-bounds (i.e. the default
1658
+ value is used).
1659
+
1660
+ A `vector.transfer_write` can be lowered to a simple store if all
1661
+ dimensions are specified to be within bounds and no `mask` was specified.
1655
1662
1656
1663
This operation is called 'write' by opposition to 'store' because the
1657
1664
super-vector granularity is generally not representable with a single
0 commit comments