refactor(includes): vipersimd c.LLVMIR 改 LOut 模式 + 文档同步新语义

vipersimd.vp 16 处 simd_* 数学 intrinsic 改 c.LLVMIR(f"{c.LOut(out)} = call ...")
+ return out 模式;TestFBProject 2 处同步;c.py stub 与 wiki 文档
更新为"无返回值直接嵌入原始 IR 文本"语义。
This commit is contained in:
TermiNexus committed 2026-08-08 16:10:36 +08:00
1 parent 44ff0d551f
commit 29b18af60c
4 files changed
+64 -29

No files matched your search

+8 -7
View File
@@ -615,13 +615,14 @@ class CUndef:
class LLVMIR:
"""内联 LLVM IR
用法: c.LLVMIR(f"add i32 {c.LInp(a)}, {c.LInp(b)}", t.CInt)
或: c.LLVMIR(f"%{c.LOut(result)} = add i32 {c.LInp(a)}, {c.LInp(b)}", t.CInt)
c.LInp(expr) - 输入操作数,翻译后替换为对应的 LLVM 临时变量名
c.LOut(expr) - 输出操作数,翻译后替换为对应的 LLVM 临时变量名
"""内联 LLVM IR(无返回值,直接嵌入原始 IR 文本)
用法: c.LLVMIR(f"add i32 {c.LInp(a)}, {c.LInp(b)}")
或: c.LLVMIR(f"{c.LOut(result)} = add i32 {c.LInp(a)}, {c.LInp(b)}")
c.LInp(expr) - 输入操作数,替换为 expr 的 LLVM 值引用文本(%x 或常量)
c.LOut(expr) - 输出操作数:为 expr 变量分配唯一 SSA 寄存器 %llvmirN,
模板嵌入后自动追加 store 写回变量 alloca
"""
def __init__(self, ir_template: Any, ret_type: Any = None) -> None:
self.ir_template: Any = ir_template