// 复现:call 返回的 float 被 par-Ocopy 接到 tmp,该 tmp 在高 fp 压力下被 spill, // rega 在 dopm 中生成 Ocopy(SLOT, FA0) cls=Ks,emit 表查不到匹配 → die。 // 详见 docs/bug-rega-fp-call-return-spill.md。 float h() { return 0.5; } float foo(int n) { float a = h(); int i = 0; float r = 0.0; while (i < n) { float fi = i * 1.0; float t00 = fi * 0.10; float t01 = fi * 0.11; float t02 = fi * 0.12; float t03 = fi * 0.13; float t04 = fi * 0.14; float t05 = fi * 0.15; float t06 = fi * 0.16; float t07 = fi * 0.17; float t08 = fi * 0.18; float t09 = fi * 0.19; float t10 = fi * 0.20; float t11 = fi * 0.21; float t12 = fi * 0.22; float t13 = fi * 0.23; float t14 = fi * 0.24; float t15 = fi * 0.25; float t16 = fi * 0.26; float t17 = fi * 0.27; float t18 = fi * 0.28; float t19 = fi * 0.29; float t20 = fi * 0.30; float t21 = fi * 0.31; float t22 = fi * 0.32; float t23 = fi * 0.33; float t24 = fi * 0.34; float t25 = fi * 0.35; float t26 = fi * 0.36; float t27 = fi * 0.37; float t28 = fi * 0.38; float t29 = fi * 0.39; float t30 = fi * 0.40; float t31 = fi * 0.41; float t32 = fi * 0.42; r = r + t00 + t01 + t02 + t03 + t04 + t05 + t06 + t07 + t08 + t09 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32; i = i + 1; } return a + r; } int main() { putfloat(foo(3)); return 0; }