每周一龙:第 16 期
每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯!
如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。
先「马」再看
本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。
Linux
LoongArch KVM 的代码仍然在改,目前改到 v21 了。
工具链
gcc
上周提到的除法、取余处理修复 (bug PR111334) 已经推入主线了。 一同推入的还有 LSX、LASX 的测试用例。
此外 Lulu Cheng 还:
隔壁 binutils 组的 mengqinggang 也来调整了优化器成本模型一处: 据说有利于寄存器压力较大情况下的循环优化,但没测试用例(应该在补了)。
LLVM
关注到 7 月底 Rust 社区的同学来报
llvm.maximum.*
和 llvm.minimum.*
两种 intrinsics 没有实现的问题,至今未能排上议事日程;
有兴趣水一两个补丁的同学可以去看看。
实现起来应该比较简单:x86 或者 RISC-V 的实现均可借鉴。
LoongArch 的 fmax
fmin
指令,在真机上观察其语义,似乎与要的一致(请务必自己也做实验尝试:笔者只检查了正负零的大小比较)。
但请十分注意:龙架构手册上对此两条指令的描述是「遵循 IEEE 754-2008」,
而两条 LLVM intrinsics 的语义是遵循「IEEE 754-2008 的草稿版本」。
笔者检查了正式版的 IEEE 754-2008(使用搜索引擎应能很方便免费获取):
其 Section 5.3.1 确实不再提及 LLVM intrinsics 要求的正负零语义。
因此你在实现的时候大概率也要参考 x86、RISC-V 后端的做法,确保规范外语义得到正确处理之后,才能调用这俩指令。
杂闻播报
上周似乎是创刊以来最安静的一周,各个社区都没有什么大新闻。 当然,这也可能仅仅是笔者未能关注到:这便是为何群众投稿如此必要了。
张贴栏
本栏目可供张贴公益性质的各种信息。
- 本周报持续接受网友投稿。欢迎来上游坐坐!