rc_vec_api.h

Go to the documentation of this file.
00001 /*  Copyright (C) 2005-2016, Axis Communications AB, LUND, SWEDEN
00002  *
00003  *  This file is part of RAPP.
00004  *
00005  *  RAPP is free software: you can redistribute it and/or modify
00006  *  it under the terms of the GNU Lesser General Public License as published
00007  *  by the Free Software Foundation, either version 3 of the License, or
00008  *  (at your option) any later version.
00009  *  You can use the comments under either the terms of the GNU Lesser General
00010  *  Public License version 3 as published by the Free Software Foundation,
00011  *  either version 3 of the License or (at your option) any later version, or
00012  *  the GNU Free Documentation License version 1.3 or any later version
00013  *  published by the Free Software Foundation; with no Invariant Sections, no
00014  *  Front-Cover Texts, and no Back-Cover Texts.
00015  *  A copy of the license is included in the documentation section entitled
00016  *  "GNU Free Documentation License".
00017  *
00018  *  RAPP is distributed in the hope that it will be useful,
00019  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00021  *  GNU Lesser General Public License for more details.
00022  *
00023  *  You should have received a copy of the GNU Lesser General Public
00024  *  License and a copy of the GNU Free Documentation License along
00025  *  with RAPP. If not, see <http://www.gnu.org/licenses/>.
00026  */
00027 
00150 #error The Vector Abstraction Layer documentation header is not to be included
00151 
00152 /*
00153  * -------------------------------------------------------------
00154  *  Performance hints
00155  * -------------------------------------------------------------
00156  */
00157 
00166 #define RC_VEC_HINT_CMPGT
00167 
00171 #define RC_VEC_HINT_CMPGE
00172 
00176 #define RC_VEC_HINT_AVGT
00177 
00181 #define RC_VEC_HINT_AVGR
00182 
00186 #define RC_VEC_HINT_GETMASKW
00187 
00191 #define RC_VEC_HINT_GETMASKV
00192 
00193 /*  @} */
00194 
00195 
00196 /*
00197  * -------------------------------------------------------------
00198  *  Vector data type
00199  * -------------------------------------------------------------
00200  */
00201 
00211 typedef arch_vector_t rc_vec_t;
00212 
00218 #define RC_VEC_SIZE
00219 
00220 /* @} */
00221 
00222 
00223 /*
00224  * -------------------------------------------------------------
00225  *  Vector state
00226  * -------------------------------------------------------------
00227  */
00228 
00239 #define RC_VEC_DECLARE()
00240 
00245 #define RC_VEC_CLEANUP()
00246 
00247 /* @} */
00248 
00249 
00250 /*
00251  * -------------------------------------------------------------
00252  *  Memory access
00253  * -------------------------------------------------------------
00254  */
00255 
00269 #define RC_VEC_LOAD(vec, ptr)
00270 
00279 #define RC_VEC_STORE(ptr, vec)
00280 
00281 /* @} */
00282 
00283 
00284 /*
00285  * -------------------------------------------------------------
00286  *  Misaligned memory access
00287  * -------------------------------------------------------------
00288  */
00289 
00309 #define RC_VEC_LDINIT(vec1, vec2, vec3, uptr, ptr)
00310 
00325 #define RC_VEC_LOADU(dstv, vec1, vec2, vec3, uptr)
00326 
00327 /* @} */
00328 
00329 
00330 /*
00331  * -------------------------------------------------------------
00332  *  Field relocation
00333  * -------------------------------------------------------------
00334  */
00335 
00349 #define RC_VEC_SHINIT(shv, bytes)
00350 
00358 #define RC_VEC_SHL(dstv, srcv, shv)
00359 
00367 #define RC_VEC_SHR(dstv, srcv, shv)
00368 
00376 #define RC_VEC_SHLC(dstv, srcv, bytes)
00377 
00385 #define RC_VEC_SHRC(dstv, srcv, bytes)
00386 
00398 #define RC_VEC_ALIGNC(dstv, srcv1, srcv2, bytes)
00399 
00409 #define RC_VEC_PACK(dstv, srcv1, srcv2)
00410 
00411 /* @} */
00412 
00413 
00414 /*
00415  * -------------------------------------------------------------
00416  *  Bitwise logical operations
00417  * -------------------------------------------------------------
00418  */
00419 
00431 #define RC_VEC_ZERO(vec)
00432 
00440 #define RC_VEC_NOT(dstv, srcv)
00441 
00450 #define RC_VEC_AND(dstv, srcv1, srcv2)
00451 
00460 #define RC_VEC_OR(dstv, srcv1, srcv2)
00461 
00470 #define RC_VEC_XOR(dstv, srcv1, srcv2)
00471 
00480 #define RC_VEC_ANDNOT(dstv, srcv1, srcv2)
00481 
00490 #define RC_VEC_ORNOT(dstv, srcv1, srcv2)
00491 
00500 #define RC_VEC_XORNOT(dstv, srcv1, srcv2)
00501 
00502 /* @} */
00503 
00504 
00505 /*
00506  * -------------------------------------------------------------
00507  *  Arithmetic operations on 8-bit fields
00508  * -------------------------------------------------------------
00509  */
00510 
00523 #define RC_VEC_SPLAT(vec, scal)
00524 
00533 #define RC_VEC_ADDS(dstv, srcv1, srcv2)
00534 
00543 #define RC_VEC_AVGT(dstv, srcv1, srcv2)
00544 
00549 #define RC_VEC_AVGR(dstv, srcv1, srcv2)
00550 
00560 #define RC_VEC_AVGZ(dstv, srcv1, srcv2)
00561 
00570 #define RC_VEC_SUBS(dstv, srcv1, srcv2)
00571 
00580 #define RC_VEC_SUBA(dstv, srcv1, srcv2)
00581 
00590 #define RC_VEC_SUBHT(dstv, srcv1, srcv2)
00591 
00600 #define RC_VEC_SUBHR(dstv, srcv1, srcv2)
00601 
00610 #define RC_VEC_ABS(dstv, srcv)
00611 
00622 #define RC_VEC_CMPGT(dstv, srcv1, srcv2)
00623 
00634 #define RC_VEC_CMPGE(dstv, srcv1, srcv2)
00635 
00644 #define RC_VEC_MIN(dstv, srcv1, srcv2)
00645 
00654 #define RC_VEC_MAX(dstv, srcv1, srcv2)
00655 
00662 #define RC_VEC_BLEND(blendv, blend8)
00663 
00675 #define RC_VEC_LERP(dstv, srcv1, srcv2, blend8, blendv)
00676 
00683 #define RC_VEC_BLENDZ(blendv, blend8)
00684 
00697 #define RC_VEC_LERPZ(dstv, srcv1, srcv2, blend8, blendv)
00698 
00705 #define RC_VEC_BLENDN(blendv, blend8)
00706 
00719 #define RC_VEC_LERPN(dstv, srcv1, srcv2, blend8, blendv)
00720 
00721 /* @} */
00722 
00723 
00724 /*
00725  * -------------------------------------------------------------
00726  *  Binary mask operations
00727  * -------------------------------------------------------------
00728  */
00729 
00744 #define RC_VEC_GETMASKW(maskw, vec)
00745 
00755 #define RC_VEC_GETMASKV(maskv, vec)
00756 
00768 #define RC_VEC_SETMASKV(vec, maskv)
00769 
00770 /* @} */
00771 
00772 
00773 /*
00774  * -------------------------------------------------------------
00775  *  Reductions
00776  * -------------------------------------------------------------
00777  */
00778 
00792 #define RC_VEC_CNTN
00793 
00800 #define RC_VEC_CNTV(accv, srcv)
00801 
00808 #define RC_VEC_CNTR(cnt, accv)
00809 
00818 #define RC_VEC_SUMN
00819 
00826 #define RC_VEC_SUMV(accv, srcv)
00827 
00834 #define RC_VEC_SUMR(sum, accv)
00835 
00844 #define RC_VEC_MACN
00845 
00853 #define RC_VEC_MACV(accv, srcv1, srcv2)
00854 
00861 #define RC_VEC_MACR(mac, accv)
00862 
00863 /* @} */
00864 /* @} */

Generated on 1 Jun 2016 for RAPP Compute by  doxygen 1.6.1