Skip to content

OpenCL pow with integer order fails on kernel compilation stage #26328

@asmorkalov

Description

@asmorkalov

System Information

Platform: Linux + NVIDIA OpenCL (GF 1080)
Become visible after #26061

Detailed description

[ RUN      ] OCL_PowFixture_iPow.iPow/0, where GetParam() = (640x480, 8UC1)
1 error generated.
OpenCL program build log: core/arithm
Status -11: CL_BUILD_PROGRAM_FAILURE
-D dstT=uchar -D DEPTH_dst=0 -D rowsPerWI=1 -D OP_POWN -D UNARY_OP -D DOUBLE_SUPPORT
<kernel>:422:1: error: call to 'pown' is ambiguous
PROCESS_ELEM;
^~~~~~~~~~~~
<kernel>:226:31: note: expanded from macro 'PROCESS_ELEM'
#define PROCESS_ELEM storedst(pown(srcelem1, srcelem2))
                              ^~~~
<kernel>:48:64: note: expanded from macro 'storedst'
#define storedst(val) *(__global dstT *)(dstptr + dst_index) = val
                                                               ^~~
cl_kernel.h:3546:25: note: candidate function
double __OVERLOADABLE__ pown(double a, int b);
                        ^
cl_kernel.h:6311:24: note: candidate function
float __OVERLOADABLE__ pown(float a, int b);
                       ^
cl_kernel.h:3538:26: note: candidate function
float2  __OVERLOADABLE__ pown(float2 x, int2 a)    ;
                         ^
cl_kernel.h:3540:26: note: candidate function
float3  __OVERLOADABLE__ pown(float3 x, int3 a)    ;
                         ^
cl_kernel.h:3542:26: note: candidate function
float4  __OVERLOADABLE__ pown(float4 x, int4 a)    ;
                         ^
cl_kernel.h:3543:26: note: candidate function
float8  __OVERLOADABLE__ pown(float8 x, int8 a)    ;
                         ^
cl_kernel.h:3544:26: note: candidate function
float16 __OVERLOADABLE__ pown(float16 x, int16 a) ;
                         ^
cl_kernel.h:3547:27: note: candidate function
double2  __OVERLOADABLE__ pown(double2 x, int2 a)    ;
                          ^
cl_kernel.h:3549:27: note: candidate function
double3  __OVERLOADABLE__ pown(double3 x, int3 a)    ;
                          ^
cl_kernel.h:3551:27: note: candidate function
double4  __OVERLOADABLE__ pown(double4 x, int4 a)    ;
                          ^
cl_kernel.h:3552:27: note: candidate function
double8  __OVERLOADABLE__ pown(double8 x, int8 a)    ;
                          ^
cl_kernel.h:3553:27: note: candidate function
double16 __OVERLOADABLE__ pown(double16 x, int16 a) ;
                          ^

[ PERFSTAT ]    (samples=100   mean=1.07   median=1.06   min=1.00   stddev=0.04 (4.0%))
[       OK ] OCL_PowFixture_iPow.iPow/0 (129 ms)

Steps to reproduce

Issue submission checklist

  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
  • I updated to the latest OpenCV version and the issue is still there
  • There is reproducer code and related data files (videos, images, onnx, etc)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions