Hi!
This message is about issue #12790.
I think I have a fix for the original regression, but while validating it with the attached testcase, I ran into a couple of follow-up errors and wanted to check whether I am interpreting them correctly.
Original crash came from a rewrite introducing iconst_s ty -1 for a type that could be wider than 64 bits.(5th of #12743) I changed the rewrite so that 64-bit and 128-bit integer cases are handled separately, and the original unimplemented for > 64 bits error no longer occurs.
After that, running the attached testcase produced a different error:
i128 args/return values not supported unless LLVM ABI extensions are enabledI then added:
set enable_llvm_abi_extensions=trueAfter that, I hit another error:
Too many return values to fit in registers. Use a StructReturn argument instead. (#9510)Then I added:
set enable_multi_ret_implicit_sretand after that I no longer saw additional errors from this testcase.
Would it be reasonable to send a PR with just the original fix for the first issue, and treat the later ABI / multi-return issues as unrelated follow-up constraints of the testcase?
If not, I would appreciate guidance on what scope would be expected here.
Thanks!
Yeah that's reasonable, I think that the original test case had those directives already and I deleted them originally to try to clean up the test case a bit (you can see I didn't go too too far...), so it's fine to re-add those to any test case. That's a known constraint of i128 support in Cranelift so those errors/settings are otherwise expected. Thanks for looking into this!
Last updated: Mar 23 2026 at 16:19 UTC