Go to the documentation of this file.
9#ifndef _HEXAGON_CIRC_BREV_INTRINSICS_H_
10#define _HEXAGON_CIRC_BREV_INTRINSICS_H_ 1
22#define Q6_circ_load_update_D(dest,ptr,incr,bufsize,K) \
23 { ptr = (int64_t *) HEXAGON_circ_ldd (ptr, &(dest), ((((K)+1)<<24)|((bufsize)<<3)), ((incr)*8)); }
31#define Q6_circ_load_update_W(dest,ptr,incr,bufsize,K) \
32 { ptr = (int *) HEXAGON_circ_ldw (ptr, &(dest), (((K)<<24)|((bufsize)<<2)), ((incr)*4)); }
40#define Q6_circ_load_update_H(dest,ptr,incr,bufsize,K) \
41 { ptr = (int16_t *) HEXAGON_circ_ldh (ptr, &(dest), ((((K)-1)<<24)|((bufsize)<<1)), ((incr)*2)); }
49#define Q6_circ_load_update_UH(dest,ptr,incr,bufsize,K) \
50 { ptr = (uint16_t *) HEXAGON_circ_lduh (ptr, &(dest), ((((K)-1)<<24)|((bufsize)<<1)), ((incr)*2)); }
58#define Q6_circ_load_update_B(dest,ptr,incr,bufsize,K) \
59 { ptr = (int8_t *) HEXAGON_circ_ldb (ptr, &(dest), ((((K)-2)<<24)|(bufsize)), incr); }
67#define Q6_circ_load_update_UB(dest,ptr,incr,bufsize,K) \
68 { ptr = (uint8_t *) HEXAGON_circ_ldub (ptr, &(dest), ((((K)-2)<<24)|(bufsize)), incr); }
77#define Q6_circ_store_update_D(src,ptr,incr,bufsize,K) \
78 { ptr = (int64_t *) HEXAGON_circ_std (ptr, src, ((((K)+1)<<24)|((bufsize)<<3)), ((incr)*8)); }
86#define Q6_circ_store_update_W(src,ptr,incr,bufsize,K) \
87 { ptr = (int *) HEXAGON_circ_stw (ptr, src, (((K)<<24)|((bufsize)<<2)), ((incr)*4)); }
95#define Q6_circ_store_update_HL(src,ptr,incr,bufsize,K) \
96 { ptr = (int16_t *) HEXAGON_circ_sth (ptr, src, ((((K)-1)<<24)|((bufsize)<<1)), ((incr)*2)); }
104#define Q6_circ_store_update_HH(src,ptr,incr,bufsize,K) \
105 { ptr = (int16_t *) HEXAGON_circ_sthhi (ptr, src, ((((K)-1)<<24)|((bufsize)<<1)), ((incr)*2)); }
113#define Q6_circ_store_update_B(src,ptr,incr,bufsize,K) \
114 { ptr = (int8_t *) HEXAGON_circ_stb (ptr, src, ((((K)-2)<<24)|(bufsize)), incr); }
124#define Q6_bitrev_load_update_D(dest,ptr,log2bufsize) \
125 { ptr = (int64_t *) HEXAGON_brev_ldd (ptr, &(dest), (1<<(16-((log2bufsize) + 3)))); }
133#define Q6_bitrev_load_update_W(dest,ptr,log2bufsize) \
134 { ptr = (int *) HEXAGON_brev_ldw (ptr, &(dest), (1<<(16-((log2bufsize) + 2)))); }
142#define Q6_bitrev_load_update_H(dest,ptr,log2bufsize) \
143 { ptr = (int16_t *) HEXAGON_brev_ldh (ptr, &(dest), (1<<(16-((log2bufsize) + 1)))); }
151#define Q6_bitrev_load_update_UH(dest,ptr,log2bufsize) \
152 { ptr = (uint16_t *) HEXAGON_brev_lduh (ptr, &(dest), (1<<(16-((log2bufsize) + 1)))); }
160#define Q6_bitrev_load_update_B(dest,ptr,log2bufsize) \
161 { ptr = (int8_t *) HEXAGON_brev_ldb (ptr, &(dest), (1<<(16-((log2bufsize))))); }
169#define Q6_bitrev_load_update_UB(dest,ptr,log2bufsize) \
170 { ptr = (uint8_t *) HEXAGON_brev_ldub (ptr, &(dest), (1<<(16-((log2bufsize))))); }
180#define Q6_bitrev_store_update_D(src,ptr,log2bufsize) \
181 { ptr = (int64_t *) HEXAGON_brev_std (ptr, src, (1<<(16-((log2bufsize) + 3)))); }
189#define Q6_bitrev_store_update_W(src,ptr,log2bufsize) \
190 { ptr = (int *) HEXAGON_brev_stw (ptr, src, (1<<(16-((log2bufsize) + 2)))); }
198#define Q6_bitrev_store_update_HL(src,ptr,log2bufsize) \
199 { ptr = (int16_t *) HEXAGON_brev_sth (ptr, src, (1<<(16-((log2bufsize) + 1)))); }
207#define Q6_bitrev_store_update_HH(src,ptr,log2bufsize) \
208 { ptr = (int16_t *) HEXAGON_brev_sthhi (ptr, src, (1<<(16-((log2bufsize) + 1)))); }
216#define Q6_bitrev_store_update_B(src,ptr,log2bufsize) \
217 { ptr = (int8_t *) HEXAGON_brev_stb (ptr, src, (1<<(16-((log2bufsize))))); }
220#define HEXAGON_circ_ldd __builtin_circ_ldd
221#define HEXAGON_circ_ldw __builtin_circ_ldw
222#define HEXAGON_circ_ldh __builtin_circ_ldh
223#define HEXAGON_circ_lduh __builtin_circ_lduh
224#define HEXAGON_circ_ldb __builtin_circ_ldb
225#define HEXAGON_circ_ldub __builtin_circ_ldub
228#define HEXAGON_circ_std __builtin_circ_std
229#define HEXAGON_circ_stw __builtin_circ_stw
230#define HEXAGON_circ_sth __builtin_circ_sth
231#define HEXAGON_circ_sthhi __builtin_circ_sthhi
232#define HEXAGON_circ_stb __builtin_circ_stb
235#define HEXAGON_brev_ldd __builtin_brev_ldd
236#define HEXAGON_brev_ldw __builtin_brev_ldw
237#define HEXAGON_brev_ldh __builtin_brev_ldh
238#define HEXAGON_brev_lduh __builtin_brev_lduh
239#define HEXAGON_brev_ldb __builtin_brev_ldb
240#define HEXAGON_brev_ldub __builtin_brev_ldub
242#define HEXAGON_brev_std __builtin_brev_std
243#define HEXAGON_brev_stw __builtin_brev_stw
244#define HEXAGON_brev_sth __builtin_brev_sth
245#define HEXAGON_brev_sthhi __builtin_brev_sthhi
246#define HEXAGON_brev_stb __builtin_brev_stb
256#define Q6_vmaskedstoreq_QAV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaskedstoreq)
265#define Q6_vmaskedstorenq_QAV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaskedstorenq)
274#define Q6_vmaskedstorentq_QAV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaskedstorentq)
283#define Q6_vmaskedstorentnq_QAV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaskedstorentnq)
290#ifdef __NOT_DEFINED__