每周一龍:第 16 期

原文鏈接:https://areweloongyet.com/newsletter/this-week-in-loongarch-16/
作者:WANG Xuerui
2023年9月18日· 閱讀需 4 分鐘
每周一都為大家報(bào)道 LoongArch? 社區(qū)最前線的第一手新鮮資訊!
如無(wú)特別說(shuō)明,文中提及的日期、時(shí)間都為北京時(shí)間(UTC+8)。

先「馬」再看
本欄目的內(nèi)容具有一定延續(xù)性,將持續(xù)追蹤報(bào)道 LoongArch? 領(lǐng)域的重要或長(zhǎng)期項(xiàng)目(坑)。
Linux
LoongArchKVM內(nèi)核虛擬機(jī)的代碼仍然在改,目前改到v21了。
工具鏈
gcc
上周提到的除法、取余處理修復(fù) (bug PR111334) 已經(jīng)推入主線了。 一同推入的還有LSX、LASX的測(cè)試用例。
此外 Lulu Cheng 還:
將默認(rèn)的分支跳轉(zhuǎn)成本從 2 提升到了 6,
優(yōu)化了浮點(diǎn)條件搬運(yùn)操作,
移除了多余的對(duì)齊動(dòng)作(會(huì)導(dǎo)致最終生成的代碼反而不滿足對(duì)齊要求)。
隔壁 binutils 組的 mengqinggang 也來(lái)調(diào)整了優(yōu)化器成本模型一處: 據(jù)說(shuō)有利于寄存器壓力較大情況下的循環(huán)優(yōu)化,但沒(méi)測(cè)試用例(應(yīng)該在補(bǔ)了)。
LLVM
關(guān)注到 7 月底 Rust 社區(qū)的同學(xué)來(lái)報(bào)llvm.maximum.*
和 llvm.minimum.*
兩種 intrinsics 沒(méi)有實(shí)現(xiàn)的問(wèn)題,至今未能排上議事日程;
有興趣水一兩個(gè)補(bǔ)丁的同學(xué)可以去看看。
信息
實(shí)現(xiàn)起來(lái)應(yīng)該比較簡(jiǎn)單:x86 或者 RISC-V 的實(shí)現(xiàn)均可借鑒。
LoongArch 的 fmax
fmin
指令,在真機(jī)上觀察其語(yǔ)義,似乎與要的一致(請(qǐng)務(wù)必自己也做實(shí)驗(yàn)嘗試:筆者只檢查了正負(fù)零的大小比較)。
但請(qǐng)十分注意:龍架構(gòu)手冊(cè)上對(duì)此對(duì)兒指令的描述是「遵循 IEEE 754-2008」,
而兩條 LLVM intrinsics 的語(yǔ)義是遵循「IEEE 754-2008 的草稿版本」。
筆者檢查了正式版的 IEEE 754-2008(使用搜索引擎應(yīng)能很方便免費(fèi)獲?。?其 Section 5.3.1 確實(shí)不再提及 LLVM intrinsics 要求的正負(fù)零語(yǔ)義。
因此你在實(shí)現(xiàn)的時(shí)候大概率也要參考 x86、RISC-V 后端的做法,確保規(guī)范外語(yǔ)義得到正確處理之后,才能調(diào)用這倆指令。

雜聞播報(bào)
上周似乎是創(chuàng)刊以來(lái)最安靜的一周,各個(gè)社區(qū)都沒(méi)有什么大新聞。 當(dāng)然,這也可能僅僅是筆者未能關(guān)注到:這便是為何群眾投稿如此必要了。

張貼欄
本欄目可供張貼公益性質(zhì)的各種信息。
本周報(bào)持續(xù)接受網(wǎng)友投稿。歡迎來(lái)上游坐坐!
本文章的內(nèi)容以 CC-BY-NC-SA 4.0 許可證授權(quán)。