Add new built-ins (#551)

* Added new built-ins: $$copysign, $$exp2, $$floor, $$llrint, $$llround, $$lrint, $$lround, $$nearbyint, $$rint, $$round, $$roundeven
* Disable $$llrint, $$llround, $$lrint and $$lround
This commit is contained in:
Dmitry Atamanov
2022-08-30 12:50:28 +05:00
committed by GitHub
parent bbc3792e7c
commit 7a07b8ff13
8 changed files with 253 additions and 83 deletions

View File

@@ -114,72 +114,73 @@ typedef struct
typedef struct
{
unsigned abs;
unsigned assume;
unsigned bitreverse;
unsigned bswap;
unsigned ceil;
unsigned convert_from_fp16;
unsigned convert_to_fp16;
unsigned copysign;
unsigned cos;
unsigned ctlz;
unsigned ctpop;
unsigned cttz;
unsigned exp;
unsigned exp2;
unsigned fabs;
unsigned floor;
unsigned fma;
unsigned fshl;
unsigned fshr;
unsigned lifetime_end;
unsigned lifetime_start;
unsigned llrint;
unsigned llround;
unsigned log;
unsigned log2;
unsigned log10;
unsigned lrint;
unsigned lround;
unsigned maximum;
unsigned maxnum;
unsigned memcpy;
unsigned memset;
unsigned minimum;
unsigned minnum;
unsigned nearbyint;
unsigned pow;
unsigned powi;
unsigned readcyclecounter;
unsigned rint;
unsigned round;
unsigned roundeven;
unsigned sadd_overflow;
unsigned sadd_sat;
unsigned uadd_overflow;
unsigned uadd_sat;
unsigned sin;
unsigned smax;
unsigned smin;
unsigned smul_overflow;
unsigned sqrt;
unsigned sshl_sat;
unsigned ssub_overflow;
unsigned ssub_sat;
unsigned trap;
unsigned trunc;
unsigned uadd_overflow;
unsigned uadd_sat;
unsigned umax;
unsigned umin;
unsigned umul_overflow;
unsigned ushl_sat;
unsigned usub_overflow;
unsigned usub_sat;
unsigned sshl_sat;
unsigned ushl_sat;
unsigned smul_overflow;
unsigned umul_overflow;
unsigned vector_reduce_fmax;
unsigned vector_reduce_fmin;
unsigned vector_reduce_smax;
unsigned vector_reduce_smin;
unsigned vector_reduce_umax;
unsigned vector_reduce_umin;
unsigned vector_reduce_fmax;
unsigned vector_reduce_fmin;
unsigned trap;
unsigned bswap;
unsigned assume;
unsigned rint;
unsigned trunc;
unsigned ceil;
unsigned sqrt;
unsigned nearbyint;
unsigned roundeven;
unsigned lround;
unsigned llround;
unsigned lrint;
unsigned llrint;
unsigned floor;
unsigned powi;
unsigned pow;
unsigned sin;
unsigned cos;
unsigned exp;
unsigned exp2;
unsigned log;
unsigned log2;
unsigned log10;
unsigned fabs;
unsigned fma;
unsigned copysign;
unsigned minnum;
unsigned maxnum;
unsigned minimum;
unsigned maximum;
unsigned smax;
unsigned smin;
unsigned umax;
unsigned umin;
unsigned abs;
unsigned fshl;
unsigned fshr;
unsigned bitreverse;
unsigned ctpop;
unsigned ctlz;
unsigned cttz;
unsigned convert_from_fp16;
unsigned convert_to_fp16;
unsigned lifetime_start;
unsigned lifetime_end;
unsigned memcpy;
unsigned memset;
unsigned readcyclecounter;
} LLVMIntrinsics;
extern LLVMIntrinsics intrinsic_id;