XCORE SDK
XCORE Software Development Kit
modules
core
modules
xs3_math
lib_xs3_math
lib_xs3_math
src
vect
vpu_helper.h
1
// Copyright 2020-2021 XMOS LIMITED.
2
// This Software is subject to the terms of the XMOS Public Licence: Version 1.
3
4
#ifndef VPU_HELPER_H_
5
#define VPU_HELPER_H_
6
7
#include "xs3_math.h"
8
#include "xs3_vpu_info.h"
9
10
16
#define SAT8(VAL) (((VAL) >= VPU_INT8_MAX )? VPU_INT8_MAX : (((VAL) <= VPU_INT8_MIN )? VPU_INT8_MIN : (VAL)))
17
#define SAT16(VAL) (((VAL) >= VPU_INT16_MAX)? VPU_INT16_MAX : (((VAL) <= VPU_INT16_MIN)? VPU_INT16_MIN : (VAL)))
18
#define SAT32(VAL) (((VAL) >= VPU_INT32_MAX)? VPU_INT32_MAX : (((VAL) <= VPU_INT32_MIN)? VPU_INT32_MIN : (VAL)))
19
23
#define SAT(BITS) SAT##BITS
24
30
#define ROUND_SHR(VAL, SHR) (((SHR)<=0)?(VAL) : (((VAL)>>((SHR)-1))+1)>>1)
31
37
#define SHR(VAL, SHR) ((VAL)>>SHR)
38
46
#define ASHR8(VAL, SHR_BITS) ( SAT8(((SHR_BITS) >= 0)? SHR((VAL),(SHR_BITS)) : (SAT8( ((int32_t)(VAL))<<(-(SHR_BITS)) ) )))
47
#define ASHR16(VAL, SHR_BITS) (SAT16(((SHR_BITS) >= 0)? SHR((VAL),(SHR_BITS)) : (SAT16( ((int32_t)(VAL))<<(-(SHR_BITS)) ) )))
48
#define ASHR32(VAL, SHR_BITS) (SAT32(((SHR_BITS) >= 0)? SHR((VAL),(SHR_BITS)) : (SAT32( ((int64_t)(VAL))<<(-(SHR_BITS)) ) )))
49
#define ASHR(BITS) ASHR##BITS
50
54
#define HRMASK_ADD(MASK, V) (MASK|(((V) >= 0)? (V) : (-V)))
55
56
57
58
static
inline
headroom_t
hr_from_mask(
unsigned
hr_mask){
59
return
0;
60
}
61
62
#endif
//VPU_HELPER_H_
headroom_t
unsigned headroom_t
Headroom of some integer or integer array.
Definition:
xs3_math_types.h:86
Generated by
1.9.1