@@ -1819,17 +1819,17 @@ def Vector_MaskedLoadOp :
18191819 Vector_Op<"maskedload">,
18201820 Arguments<(ins Arg<AnyMemRef, "", [MemRead]>:$base,
18211821 Variadic<Index>:$indices,
1822- VectorOfRankAndType<[1], [I1]>:$mask,
1823- VectorOfRank<[1]> :$pass_thru)>,
1824- Results<(outs VectorOfRank<[1]> :$result)> {
1822+ VectorOf< [I1]>:$mask,
1823+ AnyVector :$pass_thru)>,
1824+ Results<(outs AnyVector :$result)> {
18251825
18261826 let summary = "loads elements from memory into a vector as defined by a mask vector";
18271827
18281828 let description = [{
1829- The masked load reads elements from memory into a 1-D vector as defined
1830- by a base with indices and a 1-D mask vector. When the mask is set, the
1829+ The masked load reads elements from memory into a vector as defined
1830+ by a base with indices and a mask vector. When the mask is set, the
18311831 element is read from memory. Otherwise, the corresponding element is taken
1832- from a 1-D pass-through vector. Informally the semantics are:
1832+ from a pass-through vector. Informally the semantics are:
18331833 ```
18341834 result[0] := if mask[0] then base[i + 0] else pass_thru[0]
18351835 result[1] := if mask[1] then base[i + 1] else pass_thru[1]
@@ -1882,14 +1882,14 @@ def Vector_MaskedStoreOp :
18821882 Vector_Op<"maskedstore">,
18831883 Arguments<(ins Arg<AnyMemRef, "", [MemWrite]>:$base,
18841884 Variadic<Index>:$indices,
1885- VectorOfRankAndType<[1], [I1]>:$mask,
1886- VectorOfRank<[1]> :$valueToStore)> {
1885+ VectorOf< [I1]>:$mask,
1886+ AnyVector :$valueToStore)> {
18871887
18881888 let summary = "stores elements from a vector into memory as defined by a mask vector";
18891889
18901890 let description = [{
1891- The masked store operation writes elements from a 1-D vector into memory
1892- as defined by a base with indices and a 1-D mask vector. When the mask is
1891+ The masked store operation writes elements from a vector into memory
1892+ as defined by a base with indices and a mask vector. When the mask is
18931893 set, the corresponding element from the vector is written to memory. Otherwise,
18941894 no action is taken for the element. Informally the semantics are:
18951895 ```
@@ -2076,23 +2076,26 @@ def Vector_ExpandLoadOp :
20762076 Vector_Op<"expandload">,
20772077 Arguments<(ins Arg<AnyMemRef, "", [MemRead]>:$base,
20782078 Variadic<Index>:$indices,
2079- VectorOfRankAndType<[1], [I1]>:$mask,
2080- VectorOfRank<[1]> :$pass_thru)>,
2081- Results<(outs VectorOfRank<[1]> :$result)> {
2079+ VectorOf< [I1]>:$mask,
2080+ AnyVector :$pass_thru)>,
2081+ Results<(outs AnyVector :$result)> {
20822082
20832083 let summary = "reads elements from memory and spreads them into a vector as defined by a mask";
20842084
20852085 let description = [{
2086- The expand load reads elements from memory into a 1-D vector as defined
2087- by a base with indices and a 1-D mask vector. When the mask is set, the
2088- next element is read from memory. Otherwise, the corresponding element
2089- is taken from a 1-D pass-through vector. Informally the semantics are:
2086+ The expand load reads elements from memory into a vector as defined by a
2087+ base with indices and a mask vector. Expansion only applies to the innermost
2088+ dimension. When the mask is set, the next element is read from memory.
2089+ Otherwise, the corresponding element is taken from a pass-through vector.
2090+ Informally the semantics are:
2091+
20902092 ```
20912093 index = i
20922094 result[0] := if mask[0] then base[index++] else pass_thru[0]
20932095 result[1] := if mask[1] then base[index++] else pass_thru[1]
20942096 etc.
20952097 ```
2098+
20962099 Note that the index increment is done conditionally.
20972100
20982101 If a mask bit is set and the corresponding index is out-of-bounds for the
@@ -2140,22 +2143,25 @@ def Vector_CompressStoreOp :
21402143 Vector_Op<"compressstore">,
21412144 Arguments<(ins Arg<AnyMemRef, "", [MemWrite]>:$base,
21422145 Variadic<Index>:$indices,
2143- VectorOfRankAndType<[1], [I1]>:$mask,
2144- VectorOfRank<[1]> :$valueToStore)> {
2146+ VectorOf< [I1]>:$mask,
2147+ AnyVector :$valueToStore)> {
21452148
21462149 let summary = "writes elements selectively from a vector as defined by a mask";
21472150
21482151 let description = [{
2149- The compress store operation writes elements from a 1-D vector into memory
2150- as defined by a base with indices and a 1-D mask vector. When the mask is
2151- set, the corresponding element from the vector is written next to memory.
2152- Otherwise, no action is taken for the element. Informally the semantics are:
2152+ The compress store operation writes elements from a vector into memory as
2153+ defined by a base with indices and a mask vector. Compression only applies
2154+ to the innermost dimension. When the mask is set, the corresponding element
2155+ from the vector is written next to memory. Otherwise, no action is taken
2156+ for the element. Informally the semantics are:
2157+
21532158 ```
21542159 index = i
21552160 if (mask[0]) base[index++] = value[0]
21562161 if (mask[1]) base[index++] = value[1]
21572162 etc.
21582163 ```
2164+
21592165 Note that the index increment is done conditionally.
21602166
21612167 If a mask bit is set and the corresponding index is out-of-bounds for the
0 commit comments