背景:负号字面量(float(-10.0) / x: float = -3.5)此前回退过——当时 MLIR 渲染报 「f32 类型配 16 位文本」,原因是 mlirlite.ConstFloat 用 snprintf 打印位型时, 高位置位的 32 位值会被按符号扩展后的 64 位打印。该根因已在 includes/mlirlite 侧修死 (提交 8dbad70:十六进制位数只由 MlirTypeText(ty) 定,与 MLIR 渲染器同源,构造上一致), 故此路径恢复为「正确路径」:f32 目标下直接物化 f32 常量,去掉 f64 常量 + fptrunc 的绕行。 - ExprGenOps.translate_unaryop 增加 target_ty 形参:目标为 32 位浮点时折叠直接出 f32 常量; - ExprGenMixin 把 target_ty 透传给 translate_unaryop。