23 #ifndef COMMON_FFTLIB_TYPES_H_
24 #define COMMON_FFTLIB_TYPES_H_ 1
28 #ifndef __OPENCL_VERSION__
40 #if defined(__C7100__) || defined(__C7120__) || defined(__C7502__) || defined(__C7504__) || defined(__C7508__) || \
50 #if !defined(FFTLIB_DEBUGPRINT)
51 #define FFTLIB_DEBUGPRINT 0
54 #if (defined(_HOST_BUILD) && (FFTLIB_COMPILER_VERSION < 1003999))
57 #define FFTLIB_const const
60 #define __PRAGMA(x) _Pragma(#x)
62 #define __INLINE_FUNC(x) __PRAGMA(FUNC_ALWAYS_INLINE)
64 #define __INLINE_FUNC(x) __PRAGMA(FUNC_ALWAYS_INLINE(x))
73 #define FFTLIB_PRINTF(fmt, ...) \
75 fprintf(stdout, fmt, __VA_ARGS__); \
78 #if FFTLIB_DEBUGPRINT > 0
79 #define FFTLIB_DEBUGPRINTFN(N, fmt, ...) \
81 if (FFTLIB_DEBUGPRINT >= (N)) { \
82 fprintf(stdout, "FFTLIB debug %s - %d: " fmt, __FUNCTION__, __LINE__, __VA_ARGS__); \
88 #define FFTLIB_DEBUGPRINTFN(N, fmt, ...)
94 #if FFTLIB_DEBUGPRINT > 0
95 #define FFTLIB_DEBUGPRINTFN(N, fmt, ...) \
96 if (FFTLIB_DEBUGPRINT >= (N)) { \
97 fprintf(stderr, "FFTLIB debug %s - %d: " fmt, __FUNCTION__, __LINE__, __VA_ARGS__); \
100 #define FFTLIB_PRINTF(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__)
104 #define FFTLIB_DEBUGPRINTFN(N, fmt, ...)
105 #define FFTLIB_PRINTF(fmt, ...)
110 #if defined(FFTLIB_MESSAGES)
113 #define FFTLIB_MESG(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__)
115 #define FFTLIB_MESG(fmt, ...)
135 #define FFTLIB_SOFT_MMA_RESET 0
138 #define FFTLIB_STATIC_INLINE static inline
141 #include <c7x_scalable.h>
145 extern const c7x::uchar_vec FFTLIB_vperm_data_0_63;
230 #define FFTLIB_PARAM_SIZE 128
232 #define FFTLIB_MMA_ACCUMULATOR_BYTE_WIDTH_8_BIT 4
233 #define FFTLIB_MMA_ACCUMULATOR_BYTE_WIDTH_16_BIT 8
234 #define FFTLIB_MMA_ACCUMULATOR_BYTE_WIDTH_32_BIT 16
242 #define FFTLIB_ALIGN_SHIFT_64BYTES 6
243 #define FFTLIB_ALIGN_SHIFT_128BYTES 7
244 #define FFTLIB_ALIGN_SHIFT_256BYTES 8
246 #define FFTLIB_ALIGN_64BYTES (1 << FFTLIB_ALIGN_SHIFT_64BYTES)
247 #define FFTLIB_ALIGN_128BYTES (1 << FFTLIB_ALIGN_SHIFT_128BYTES)
248 #define FFTLIB_ALIGN_256BYTES (1 << FFTLIB_ALIGN_SHIFT_256BYTES)
250 #define FFTLIB_L2DATA_ALIGN_SHIFT FFTLIB_ALIGN_SHIFT_64BYTES
254 #define FFTLIB_L2DATA_ALIGNMENT (((uint32_t) 1) << ((uint32_t) FFTLIB_L2DATA_ALIGN_SHIFT))
305 #if defined(QT_TEST) || defined(RTL_TEST) || defined(EVM_TEST)
306 #if defined(_HOST_BUILD)
307 #define FFTLIB_asm(string) ;
309 #define FFTLIB_asm(string) \
314 #define FFTLIB_asm(string) ;
324 #if defined(_HOST_BUILD)
326 #define xstr(x) str(x)
328 #define __attribute__()
329 #define FFTLIB_UNROLL(count)
331 #define FFTLIB_UNROLL(count) _Pragma(str(UNROLL(count)))
334 #define FFTLIB_UNROLL(COUNT) [[TI::unroll(COUNT)]]
337 #if defined(_HOST_BUILD)
339 #define __attribute__()
340 #define FFTLIB_MUST_ITERATE(initial, max, multiple)
342 #define FFTLIB_MUST_ITERATE(initial, max, multiple) _Pragma(str(MUST_ITERATE(initial, max, multiple)))
345 #define FFTLIB_MUST_ITERATE(INTIAL, MAX, MULTIPLE) [[TI::must_iterate(INTIAL, MAX, MULTIPLE)]]
348 #ifndef FFTLIB_NUMBER_RANDOM_DIM_TESTS
349 #define FFTLIB_NUMBER_RANDOM_DIM_TESTS 25
352 #if defined(PERFORMANCE_TEST)
353 #define FFTLIB_PERFORMANCE_TEST_PATTERN SEQUENTIAL
355 #define FFTLIB_PERFORMANCE_TEST_PATTERN RANDOM_SIGNED
358 #define FFTLIB_TEST_OUTPUT_HEAP 0
359 #if defined(_HOST_BUILD)
362 #define FFTLIB_TEST_OUTPUT_MSMC FFTLIB_TEST_OUTPUT_HEAP
364 #define FFTLIB_TEST_OUTPUT_MSMC 1
367 #define STRIDE_OPT_4CYCLE 1
380 #define FFTLIB_min(x, y) (((x) < (y)) ? (x) : (y))
381 #define FFTLIB_max(x, y) (((x) < (y)) ? (y) : (x))
382 #define FFTLIB_ceilingDiv(x, y) \
383 (((x) + (y) -1) / (y))
File to hold buffer parameter related info for FFTLIB.
double FFTLIB_D64
Double precision floating point.
void * FFTLIB_kernelHandle
Handle type for FFTLIB operations.
FFTLIB_STATUS_NAME
The enumeration of all status codes.
@ FFTLIB_ERR_NOT_IMPLEMENTED
@ FFTLIB_ERR_INVALID_ACTIVATION
@ FFTLIB_ERR_INVALID_TYPE
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_TYPE_COMBINATION
@ FFTLIB_ERR_NOT_EQUAL_WIDTH_STRIDE
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_INPUT_TYPE
@ FFTLIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE
@ FFTLIB_ERR_NULL_POINTER
@ FFTLIB_ERR_INVALID_DIMENSION
@ FFTLIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_TYPE_COMBINATION
@ FFTLIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION
@ FFTLIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_INPUT_TYPE
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE
@ FFTLIB_ERR_INVALID_SHIFT
@ FFTLIB_ERR_BUFFER_TOO_SMALL
@ FFTLIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_OUTPUT_TYPE
@ FFTLIB_ERR_INVALID_OUTMODE
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_OUTPUT_TYPE
@ FFTLIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE
@ FFTLIB_ERR_INVALID_VALUE
@ FFTLIB_ERR_NOT_ALIGNED_WIDTHS
@ FFTLIB_ERR_NOT_ALIGNED_PTRS_STRIDES
@ FFTLIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE
float FFTLIB_F32
Single precision floating point.
FFTLIB_STATUS_NAME FFTLIB_STATUS
Return value for FFTLIB functions.
FFTLIB_FUNCTION_STYLE
Enumeration for the style of function implementation.
@ FFTLIB_FUNCTION_OPTIMIZED
const c7x::ushort_vec FFTLIB_zeroVect_ushort_vec
const c7x::uchar_vec FFTLIB_zeroVect_uchar_vec