@@ -129,21 +129,36 @@ extension SIMD${n} where Scalar == ${Scalar} {
129
129
130
130
/// The wrapping sum of two vectors.
131
131
@_alwaysEmitIntoClient
132
- public static func &+ ( a: Self, b: Self) - > Self{
132
+ public static func &+ ( a: Self, b: Self) - > Self {
133
133
Self ( Builtin . add_ ${ Builtin} ( a. _storage. _value, b. _storage. _value) )
134
134
}
135
135
136
136
/// The wrapping difference of two vectors.
137
137
@_alwaysEmitIntoClient
138
- public static func &- ( a: Self, b: Self) - > Self{
138
+ public static func &- ( a: Self, b: Self) - > Self {
139
139
Self ( Builtin . sub_ ${ Builtin} ( a. _storage. _value, b. _storage. _value) )
140
140
}
141
141
142
142
/// The pointwise wrapping product of two vectors.
143
143
@_alwaysEmitIntoClient
144
- public static func &* ( a: Self, b: Self) - > Self{
144
+ public static func &* ( a: Self, b: Self) - > Self {
145
145
Self ( Builtin . mul_ ${ Builtin} ( a. _storage. _value, b. _storage. _value) )
146
146
}
147
+
148
+ /// Updates the left hand side with the wrapping sum of the two
149
+ /// vectors.
150
+ @_alwaysEmitIntoClient
151
+ public static func &+= ( a: inout Self, b: Self) { a = a &+ b }
152
+
153
+ /// Updates the left hand side with the wrapping difference of the two
154
+ /// vectors.
155
+ @_alwaysEmitIntoClient
156
+ public static func &-= ( a: inout Self, b: Self) { a = a &- b }
157
+
158
+ /// Updates the left hand side with the pointwise wrapping product of two
159
+ /// vectors.
160
+ @_alwaysEmitIntoClient
161
+ public static func &*= ( a: inout Self, b: Self) { a = a &* b }
147
162
}
148
163
149
164
% end
0 commit comments