Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement fcvt_from_uint (i32x4 -> f32x4) for x86 #1765

Merged
merged 5 commits into from
Jun 12, 2020

Conversation

abrown
Copy link
Contributor

@abrown abrown commented May 26, 2020

This converts an i32x4 into an f32x4 with some rounding either by using an AVX512VL/F instruction--VCVTUDQ2PS--or a long sequence of SSE4.1 compatible instructions.

It is still a draft as it depends on some commits in #1759.

@github-actions github-actions bot added cranelift Issues related to the Cranelift code generator cranelift:area:aarch64 Issues related to AArch64 backend. cranelift:area:x64 Issues related to x64 codegen cranelift:meta Everything related to the meta-language. labels May 26, 2020
@github-actions
Copy link

Subscribe to Label Action

cc @bnjbvr

This issue or pull request has been labeled: "cranelift", "cranelift:area:aarch64", "cranelift:area:x64", "cranelift:meta"

Thus the following users have been cc'd because of the following labels:

  • bnjbvr: cranelift

To subscribe or unsubscribe from this label, edit the .github/subscribe-to-label.json configuration file.

Learn more.

@abrown
Copy link
Contributor Author

abrown commented May 26, 2020

This also depends on #1762, which will fix the CI failures.

Copy link
Contributor

@julian-seward1 julian-seward1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. Only concern is that the rounding behaviour isn't obvious to me; hence a request to document it in a couple of places.

cranelift/codegen/meta/src/isa/x86/opcodes.rs Show resolved Hide resolved
cranelift/codegen/src/isa/x86/enc_tables.rs Show resolved Hide resolved
cranelift/codegen/src/isa/x86/enc_tables.rs Outdated Show resolved Hide resolved
This instruction converts i32x4 to f32x4 in several AVX512 feature sets.
This instruction is necessary for lowering `fcvt_from_uint`.
This converts an `i32x4` into an `f32x4` with some rounding either by using an AVX512VL/F instruction--VCVTUDQ2PS--or a long sequence of SSE4.1 compatible instructions.
@abrown abrown merged commit f1e773d into bytecodealliance:master Jun 12, 2020
@abrown abrown deleted the i32x4-to-f32x4 branch June 12, 2020 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cranelift:area:aarch64 Issues related to AArch64 backend. cranelift:area:x64 Issues related to x64 codegen cranelift:meta Everything related to the meta-language. cranelift:wasm cranelift Issues related to the Cranelift code generator
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants