File tree 3 files changed +8
-22
lines changed
backends/cadence/hifi/operators
3 files changed +8
-22
lines changed Original file line number Diff line number Diff line change @@ -143,14 +143,15 @@ Tensor& add_out(
143
143
144
144
if ((a_dim == 0 ) && float_types) {
145
145
for (int i = 0 ; i < b.numel (); i++)
146
- out.mutable_data_ptr <float >()[i] =
147
- a. const_data_ptr < float >()[ 0 ] + b.const_data_ptr <float >()[i];
146
+ out.mutable_data_ptr <float >()[i] = a. const_data_ptr < float >()[ 0 ] +
147
+ alpha_val * b.const_data_ptr <float >()[i];
148
148
return out;
149
149
}
150
150
if ((b_dim == 0 ) && float_types) {
151
+ // Precompute the value of b * alpha since it's a constant.
152
+ const float val_b = alpha_val * b.const_data_ptr <float >()[0 ];
151
153
for (int i = 0 ; i < a.numel (); i++)
152
- out.mutable_data_ptr <float >()[i] =
153
- a.const_data_ptr <float >()[i] + b.const_data_ptr <float >()[0 ];
154
+ out.mutable_data_ptr <float >()[i] = a.const_data_ptr <float >()[i] + val_b;
154
155
return out;
155
156
}
156
157
Original file line number Diff line number Diff line change @@ -214,22 +214,6 @@ Tensor& div_out_mode(
214
214
if ((a_type != ScalarType::Float) || (b_type != ScalarType::Float))
215
215
optimized = 0 ;
216
216
217
- bool float_types =
218
- (a_type == ScalarType::Float) && (b_type == ScalarType::Float);
219
-
220
- if ((a_dim == 0 ) && float_types) {
221
- for (int i = 0 ; i < b.numel (); i++)
222
- out.mutable_data_ptr <float >()[i] =
223
- a.const_data_ptr <float >()[0 ] / b.const_data_ptr <float >()[i];
224
- return out;
225
- }
226
- if ((b_dim == 0 ) && float_types) {
227
- for (int i = 0 ; i < a.numel (); i++)
228
- out.mutable_data_ptr <float >()[i] =
229
- a.const_data_ptr <float >()[i] / b.const_data_ptr <float >()[0 ];
230
- return out;
231
- }
232
-
233
217
if ((broadcast == 1 ) && (max_dim > kNnlibMaxDim ))
234
218
optimized = 0 ;
235
219
int mode_val = -1 ;
Original file line number Diff line number Diff line change @@ -143,9 +143,10 @@ Tensor& sub_out(
143
143
return out;
144
144
}
145
145
if ((b_dim == 0 ) && float_types) {
146
+ // Precompute the value of b * alpha since it's a constant.
147
+ const float val_b = alpha_val * b.const_data_ptr <float >()[0 ];
146
148
for (int i = 0 ; i < a.numel (); i++)
147
- out.mutable_data_ptr <float >()[i] =
148
- a.const_data_ptr <float >()[i] - b.const_data_ptr <float >()[0 ];
149
+ out.mutable_data_ptr <float >()[i] = a.const_data_ptr <float >()[i] - val_b;
149
150
return out;
150
151
}
151
152
You can’t perform that action at this time.
0 commit comments