diff --git a/lite/kernels/x86/elementwise_compute.cc b/lite/kernels/x86/elementwise_compute.cc index 8b375f078f6..01a830963cc 100644 --- a/lite/kernels/x86/elementwise_compute.cc +++ b/lite/kernels/x86/elementwise_compute.cc @@ -47,6 +47,28 @@ REGISTER_LITE_KERNEL(elementwise_mul, .BindOutput("Out", {LiteType::GetTensorTy(TARGET(kX86))}) .Finalize(); +REGISTER_LITE_KERNEL(elementwise_mul, + kX86, + kFloat, + kNCHW, + paddle::lite::kernels::x86::ElementwiseMulCompute, + int32) + .BindInput("X", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt32))}) + .BindInput("Y", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt32))}) + .BindOutput("Out", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt32))}) + .Finalize(); + +REGISTER_LITE_KERNEL(elementwise_mul, + kX86, + kFloat, + kNCHW, + paddle::lite::kernels::x86::ElementwiseMulCompute, + int64) + .BindInput("X", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt64))}) + .BindInput("Y", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt64))}) + .BindOutput("Out", {LiteType::GetTensorTy(TARGET(kX86), PRECISION(kInt64))}) + .Finalize(); + REGISTER_LITE_KERNEL( elementwise_floordiv, kX86, diff --git a/lite/tests/kernels/elementwise_compute_test.cc b/lite/tests/kernels/elementwise_compute_test.cc index d583c95f15b..460a39f2331 100644 --- a/lite/tests/kernels/elementwise_compute_test.cc +++ b/lite/tests/kernels/elementwise_compute_test.cc @@ -372,6 +372,9 @@ TEST(elementwise_x86, precison) { Place place(TARGET(kX86)); float abs_error = 1e-5; + TestEltX86(place, abs_error, "mul", "def"); + TestEltX86(place, abs_error, "mul", "int32"); + TestEltX86(place, abs_error, "mul", "int64"); TestEltX86(place, abs_error, "floordiv", "float32"); TestEltX86(place, abs_error, "floordiv", "int32"); TestEltX86(place, abs_error, "floordiv", "int64"); diff --git a/lite/tests/kernels/fill_constant_batch_size_like_compute_test.cc b/lite/tests/kernels/fill_constant_batch_size_like_compute_test.cc index e7196fc04c0..1fd47744947 100644 --- a/lite/tests/kernels/fill_constant_batch_size_like_compute_test.cc +++ b/lite/tests/kernels/fill_constant_batch_size_like_compute_test.cc @@ -132,7 +132,9 @@ TEST(fill_constant_batch_size_like, precision) { LOG(INFO) << "test fill_constant_batch_size_like op"; Place place; float abs_error = 1e-5; -#if defined(LITE_WITH_NPU) +#if defined(LITE_WITH_XPU) && !defined(LITE_WITH_XTCL) + place = TARGET(kXPU); +#elif defined(LITE_WITH_NPU) place = TARGET(kNPU); abs_error = 1e-2; // use fp16 in npu #elif defined(LITE_WITH_ARM) || defined(LITE_WITH_X86)