Right, especially for those builtin function which don't care about the sign. Junyan, could you refine your patch accordingly? Thanks.
On Tue, Mar 24, 2015 at 07:39:03AM +0000, Yang, Rong R wrote: > Zhigang have add function OCLIntrinsicMap.find to handle override function > name, only need one DECL_LLVM_GEN_FUNCTION for one group override functions, > and in the GenWriter::emitCallInst to get the corresponding argument type. It > reduce the DECL_LLVM_GEN_FUNCTION significant. Can you also use this method? > > > -----Original Message----- > > From: Beignet [mailto:beignet-boun...@lists.freedesktop.org] On Behalf Of > > junyan...@inbox.com > > Sent: Tuesday, March 24, 2015 14:40 > > To: beignet@lists.freedesktop.org > > Cc: Junyan He > > Subject: [Beignet] [PATCH OpenCL 2.0] Backend: Update the workgroup > > instructions for llvm backend to gen. > > > > From: Junyan He <junyan...@linux.intel.com> > > > > Signed-off-by: Junyan He <junyan...@linux.intel.com> > > --- > > backend/src/llvm/llvm_gen_ocl_function.hxx | 87 > > ++++++++++++++++++++++++++++ > > 1 file changed, 87 insertions(+) > > > > diff --git a/backend/src/llvm/llvm_gen_ocl_function.hxx > > b/backend/src/llvm/llvm_gen_ocl_function.hxx > > index 9536a3c..947fadc 100644 > > --- a/backend/src/llvm/llvm_gen_ocl_function.hxx > > +++ b/backend/src/llvm/llvm_gen_ocl_function.hxx > > @@ -160,3 +160,90 @@ DECL_LLVM_GEN_FUNCTION(REGION, > > __gen_ocl_region) > > > > // printf function > > DECL_LLVM_GEN_FUNCTION(PRINTF, __gen_ocl_printf) > > + > > +// work group function > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_INT_1D, > > +_Z30__gen_ocl_work_group_broadcastij) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_INT_2D, > > +_Z30__gen_ocl_work_group_broadcastijj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_INT_3D, > > +_Z30__gen_ocl_work_group_broadcastijjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_UINT_1D, > > +_Z30__gen_ocl_work_group_broadcastjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_UINT_2D, > > +_Z30__gen_ocl_work_group_broadcastjjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_UINT_3D, > > +_Z30__gen_ocl_work_group_broadcastjjjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_LONG_1D, > > +_Z30__gen_ocl_work_group_broadcastlj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_LONG_2D, > > +_Z30__gen_ocl_work_group_broadcastljj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_lONG_3D, > > +_Z30__gen_ocl_work_group_broadcastljjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_ULONG_1D, > > +_Z30__gen_ocl_work_group_broadcastmj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_ULONG_2D, > > +_Z30__gen_ocl_work_group_broadcastmjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_ULONG_3D, > > +_Z30__gen_ocl_work_group_broadcastmjjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_FLOAT_1D, > > +_Z30__gen_ocl_work_group_broadcastfj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_FLOAT_2D, > > +_Z30__gen_ocl_work_group_broadcastfjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_FLOAT_3D, > > +_Z30__gen_ocl_work_group_broadcastfjjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_DOUBLE_1D, > > +_Z30__gen_ocl_work_group_broadcastdj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_DOUBLE_2D, > > +_Z30__gen_ocl_work_group_broadcastdjj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_BROADCAST_DOUBLE_3D, > > +_Z30__gen_ocl_work_group_broadcastdjjj) > > + > > +// work group reduce > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_DOUBLE, > > +_Z31__gen_ocl_work_group_reduce_addd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_FLOAT, > > +_Z31__gen_ocl_work_group_reduce_addf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_INT, > > +_Z31__gen_ocl_work_group_reduce_addi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_UINT, > > +_Z31__gen_ocl_work_group_reduce_addj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_LONG, > > +_Z31__gen_ocl_work_group_reduce_addl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_ADD_ULONG, > > +_Z31__gen_ocl_work_group_reduce_addm) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXD, > > +_Z31__gen_ocl_work_group_reduce_maxd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXF, > > +_Z31__gen_ocl_work_group_reduce_maxf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXI, > > +_Z31__gen_ocl_work_group_reduce_maxi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXJ, > > +_Z31__gen_ocl_work_group_reduce_maxj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXL, > > +_Z31__gen_ocl_work_group_reduce_maxl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MAXM, > > +_Z31__gen_ocl_work_group_reduce_maxm) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MIND, > > +_Z31__gen_ocl_work_group_reduce_mind) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MINF, > > +_Z31__gen_ocl_work_group_reduce_minf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MINI, > > +_Z31__gen_ocl_work_group_reduce_mini) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MINJ, > > +_Z31__gen_ocl_work_group_reduce_minj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MINL, > > +_Z31__gen_ocl_work_group_reduce_minl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_REDUCE_MINM, > > +_Z31__gen_ocl_work_group_reduce_minm) > > + > > +// work group scan_exclusive > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_exclusive_addd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_FLO > > AT, > > +_Z39__gen_ocl_work_group_scan_exclusive_addf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_INT, > > +_Z39__gen_ocl_work_group_scan_exclusive_addi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_UIN > > T, > > +_Z39__gen_ocl_work_group_scan_exclusive_addj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_exclusive_addl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_ADD_UL > > ONG, > > +_Z39__gen_ocl_work_group_scan_exclusive_addm) > > + > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAX_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAX_FL > > OAT, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAX_INT, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAX_UI > > NT, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAX_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MAXM_ > > ULONG, > > +_Z39__gen_ocl_work_group_scan_exclusive_maxm) > > + > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_exclusive_mind) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_FLO > > AT, > > +_Z39__gen_ocl_work_group_scan_exclusive_minf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_INT, > > +_Z39__gen_ocl_work_group_scan_exclusive_mini) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_UIN > > T, > > +_Z39__gen_ocl_work_group_scan_exclusive_minj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_exclusive_minl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_EXCLUSIVE_MIN_UL > > ONG, > > +_Z39__gen_ocl_work_group_scan_exclusive_minm) > > + > > +// work group scan_inclusive > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_inclusive_addd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_FLO > > AT, > > +_Z39__gen_ocl_work_group_scan_inclusive_addf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_INT, > > +_Z39__gen_ocl_work_group_scan_inclusive_addi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_UIN > > T, > > +_Z39__gen_ocl_work_group_scan_inclusive_addj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_inclusive_addl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_ADD_UL > > ONG, > > +_Z39__gen_ocl_work_group_scan_inclusive_addm) > > + > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxd) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_FL > > OAT, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_INT, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxi) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_UI > > NT, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MAX_UL > > ONG, > > +_Z39__gen_ocl_work_group_scan_inclusive_maxm) > > + > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_DO > > UBLE, > > +_Z39__gen_ocl_work_group_scan_inclusive_mind) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_FLO > > AT, > > +_Z39__gen_ocl_work_group_scan_inclusive_minf) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_INT, > > +_Z39__gen_ocl_work_group_scan_inclusive_mini) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_UIN > > T, > > +_Z39__gen_ocl_work_group_scan_inclusive_minj) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_LO > > NG, > > +_Z39__gen_ocl_work_group_scan_inclusive_minl) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_SCAN_INCLUSIVE_MIN_UL > > ONG, > > +_Z39__gen_ocl_work_group_scan_inclusive_minm) > > + > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_ALL, > > __gen_ocl_work_group_all) > > +DECL_LLVM_GEN_FUNCTION(WORK_GROUP_ANY, > > __gen_ocl_work_group_any) > > -- > > 1.7.9.5 > > > > _______________________________________________ > > Beignet mailing list > > Beignet@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > Beignet@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet