These built-in functions are available for LoongArch.
Data Type Description:
imm0_31
, a compile-time constant in range 0 to 31;
imm0_16383
, a compile-time constant in range 0 to 16383;
imm0_32767
, a compile-time constant in range 0 to 32767;
imm_n2048_2047
, a compile-time constant in range -2048 to 2047;
The intrinsics provided are listed below:
unsigned int __builtin_loongarch_movfcsr2gr (imm0_31) void __builtin_loongarch_movgr2fcsr (imm0_31, unsigned int) void __builtin_loongarch_cacop_d (imm0_31, unsigned long int, imm_n2048_2047) unsigned int __builtin_loongarch_cpucfg (unsigned int) void __builtin_loongarch_asrtle_d (long int, long int) void __builtin_loongarch_asrtgt_d (long int, long int) long int __builtin_loongarch_lddir_d (long int, imm0_31) void __builtin_loongarch_ldpte_d (long int, imm0_31) int __builtin_loongarch_crc_w_b_w (char, int) int __builtin_loongarch_crc_w_h_w (short, int) int __builtin_loongarch_crc_w_w_w (int, int) int __builtin_loongarch_crc_w_d_w (long int, int) int __builtin_loongarch_crcc_w_b_w (char, int) int __builtin_loongarch_crcc_w_h_w (short, int) int __builtin_loongarch_crcc_w_w_w (int, int) int __builtin_loongarch_crcc_w_d_w (long int, int) unsigned int __builtin_loongarch_csrrd_w (imm0_16383) unsigned int __builtin_loongarch_csrwr_w (unsigned int, imm0_16383) unsigned int __builtin_loongarch_csrxchg_w (unsigned int, unsigned int, imm0_16383) unsigned long int __builtin_loongarch_csrrd_d (imm0_16383) unsigned long int __builtin_loongarch_csrwr_d (unsigned long int, imm0_16383) unsigned long int __builtin_loongarch_csrxchg_d (unsigned long int, unsigned long int, imm0_16383) unsigned char __builtin_loongarch_iocsrrd_b (unsigned int) unsigned short __builtin_loongarch_iocsrrd_h (unsigned int) unsigned int __builtin_loongarch_iocsrrd_w (unsigned int) unsigned long int __builtin_loongarch_iocsrrd_d (unsigned int) void __builtin_loongarch_iocsrwr_b (unsigned char, unsigned int) void __builtin_loongarch_iocsrwr_h (unsigned short, unsigned int) void __builtin_loongarch_iocsrwr_w (unsigned int, unsigned int) void __builtin_loongarch_iocsrwr_d (unsigned long int, unsigned int) void __builtin_loongarch_dbar (imm0_32767) void __builtin_loongarch_ibar (imm0_32767) void __builtin_loongarch_syscall (imm0_32767) void __builtin_loongarch_break (imm0_32767)
These instrisic functions are available by using -mfrecipe.
float __builtin_loongarch_frecipe_s (float); double __builtin_loongarch_frecipe_d (double); float __builtin_loongarch_frsqrte_s (float); double __builtin_loongarch_frsqrte_d (double);
Note:Since the control register is divided into 32-bit and 64-bit, but the access instruction is not distinguished. So GCC renames the control instructions when implementing intrinsics.
Take the csrrd instruction as an example, built-in functions are implemented as follows:
__builtin_loongarch_csrrd_w // When reading the 32-bit control register use. __builtin_loongarch_csrrd_d // When reading the 64-bit control register use.
For the convenience of use, the built-in functions are encapsulated,
the encapsulated functions and __drdtime_t, __rdtime_t
are
defined in the larchintrin.h
. So if you call the following
function you need to include larchintrin.h
.
typedef struct drdtime{ unsigned long dvalue; unsigned long dtimeid; } __drdtime_t; typedef struct rdtime{ unsigned int value; unsigned int timeid; } __rdtime_t;
__drdtime_t __rdtime_d (void) __rdtime_t __rdtimel_w (void) __rdtime_t __rdtimeh_w (void) unsigned int __movfcsr2gr (imm0_31) void __movgr2fcsr (imm0_31, unsigned int) void __cacop_d (imm0_31, unsigned long, imm_n2048_2047) unsigned int __cpucfg (unsigned int) void __asrtle_d (long int, long int) void __asrtgt_d (long int, long int) long int __lddir_d (long int, imm0_31) void __ldpte_d (long int, imm0_31) int __crc_w_b_w (char, int) int __crc_w_h_w (short, int) int __crc_w_w_w (int, int) int __crc_w_d_w (long int, int) int __crcc_w_b_w (char, int) int __crcc_w_h_w (short, int) int __crcc_w_w_w (int, int) int __crcc_w_d_w (long int, int) unsigned int __csrrd_w (imm0_16383) unsigned int __csrwr_w (unsigned int, imm0_16383) unsigned int __csrxchg_w (unsigned int, unsigned int, imm0_16383) unsigned long __csrrd_d (imm0_16383) unsigned long __csrwr_d (unsigned long, imm0_16383) unsigned long __csrxchg_d (unsigned long, unsigned long, imm0_16383) unsigned char __iocsrrd_b (unsigned int) unsigned short __iocsrrd_h (unsigned int) unsigned int __iocsrrd_w (unsigned int) unsigned long __iocsrrd_d (unsigned int) void __iocsrwr_b (unsigned char, unsigned int) void __iocsrwr_h (unsigned short, unsigned int) void __iocsrwr_w (unsigned int, unsigned int) void __iocsrwr_d (unsigned long, unsigned int) void __dbar (imm0_32767) void __ibar (imm0_32767) void __syscall (imm0_32767) void __break (imm0_32767)
These instrisic functions are available by including larchintrin.h
and
using -mfrecipe.
float __frecipe_s (float); double __frecipe_d (double); float __frsqrte_s (float); double __frsqrte_d (double);
Additional built-in functions are available for LoongArch family processors to efficiently use 128-bit floating-point (__float128) values.
The following are the basic built-in functions supported.
__float128 __builtin_fabsq (__float128); __float128 __builtin_copysignq (__float128, __float128); __float128 __builtin_infq (void); __float128 __builtin_huge_valq (void); __float128 __builtin_nanq (void); __float128 __builtin_nansq (void);
Returns the value that is currently set in the ‘tp’ register.
void * __builtin_thread_pointer (void)
洁面膏和洗面奶有什么区别 | 啖是什么意思 | 2000年是什么生肖 | 吃什么不掉头发 | 阴茎不硬吃什么 |
公务员是什么编制 | 裙摆是什么 | 三顾茅庐什么意思 | 做完核磁共振后需要注意什么 | 帝王蟹什么季节吃最好 |
鸩是什么意思 | 梦见考试是什么预兆 | 什么的秃鹫 | 猎奇是什么意思 | 百字五行属什么 |
吊膀子是什么意思 | 日本是什么时候侵略中国的 | 过敏性哮喘吃什么药 | 压迫硬膜囊是什么意思 | 口舌生疮是什么原因 |
杏林指什么hcv8jop6ns8r.cn | 西瓜吃了有什么好处hcv9jop0ns5r.cn | 婴儿第一次发烧叫什么hcv8jop2ns0r.cn | 教育的本质是什么sanhestory.com | 早上起来口苦是什么原因hcv8jop7ns2r.cn |
什么的羊圈hcv7jop5ns6r.cn | 网罗是什么意思hcv8jop7ns8r.cn | 医学是什么hcv8jop9ns5r.cn | 吨位是什么意思hcv9jop7ns3r.cn | 做书桌用什么板材好hcv7jop7ns3r.cn |
理财什么意思hcv8jop5ns2r.cn | 脚上长水泡是什么原因引起的hcv9jop6ns3r.cn | 1959年是什么年clwhiglsz.com | 什么是脑中风mmeoe.com | 三七有什么功效hcv9jop7ns2r.cn |
非萎缩性胃窦炎是什么意思sanhestory.com | 十点是什么时辰hcv7jop6ns6r.cn | 铁皮石斛花有什么作用hcv8jop6ns6r.cn | 恳谈会是什么意思hcv8jop4ns3r.cn | 什么叫单亲家庭hcv7jop6ns8r.cn |