Skip to content

Commit 0808975

Browse files
authored
[CPU] windows_Interpolate_fused-FQ_nearest-mode_nspc-layout_fix (openvinotoolkit#5317)
1 parent 7d2ec02 commit 0808975

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

inference-engine/src/mkldnn_plugin/nodes/mkldnn_interpolate_node.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,13 @@ struct jit_uni_interpolate_kernel_f32 : public jit_uni_interpolate_kernel, publi
386386
Xbyak::Label out_loop_label;
387387
Xbyak::Label out_loop_end;
388388

389+
Xbyak::Reg64 reg_work_amount_bk = reg_src_aux2;
390+
Xbyak::Reg64 reg_oc_off_bk = rsi;
391+
mov(reg_work_amount_bk, ptr[reg_params + GET_OFF(work_amount)]);
392+
if (attr_.post_ops_.len() != 0) {
393+
mov(reg_oc_off_bk, ptr[reg_params + GET_OFF(oc_off)]);
394+
}
395+
389396
Xbyak::Reg64 reg_work_amount_out = reg_src_aux1;
390397
mov(reg_work_amount_out, jcp_.OW);
391398
L(out_loop_label);
@@ -410,9 +417,9 @@ struct jit_uni_interpolate_kernel_f32 : public jit_uni_interpolate_kernel, publi
410417
mov(reg_index_offset, dword[reg_index]);
411418
add(reg_src_aux, reg_index_offset);
412419

413-
mov(reg_work_amount, ptr[reg_params + GET_OFF(work_amount)]);
420+
mov(reg_work_amount, reg_work_amount_bk);
414421
if (attr_.post_ops_.len() != 0)
415-
mov(reg_oc_off, ptr[reg_params + GET_OFF(oc_off)]);
422+
mov(reg_oc_off, reg_oc_off_bk);
416423

417424
L(nn_loop_label);
418425
{

inference-engine/tests/functional/plugin/cpu/single_layer_tests/interpolate.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ const std::vector<fusingSpecificParams> interpolateFusingParamsSet{
236236
emptyFusingSpec,
237237
fusingRelu,
238238
fusingSwish,
239+
fusingFakeQuantizePerChannelRelu,
239240
};
240241

241242
std::vector<std::map<std::string, std::string>> filterAdditionalConfig() {

0 commit comments

Comments
 (0)