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__