Skip to content

small floating-point performance improvements - #1068

Merged
mflatt merged 1 commit into
cisco:mainfrom
mflatt:movapd
Sep 23, 2026
Merged

mflatt merged 1 commit into
cisco:mainfrom
mflatt:movapd

Conversation

@mflatt

@mflatt mflatt commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Mark fl-make-rectangular as accepting unboxed arguments, which is needed to comunicate unboxing potential to let bindings.

On x86_64, use movapd instead of movsd for register-to-register moves, since that avoids creating a false dependency on some processors to preserve high bits.

@mflatt

mflatt commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

Another instruction-selection improvement from @samth: clear bits before cvtsi2sd.

Mark `fl-make-rectangular` as accepting unboxed arguments, which is
needed to comunicate unboxing potential to `let` bindings.

On x86_64, use MOVAPD instead of MOVSD for register-to-register moves,
since that avoids creating a false dependency on some processors to
preserve high bits, and similarly clear bits of the desitination
register before CVTSI2SD and some related instructions. These
improvements and related tests were provided by @samth.
@mflatt
mflatt merged commit 879f29e into cisco:main Sep 23, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant