Skip to content

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

Merged
abrown merged 5 commits intobytecodealliance:masterfrom
abrown:i32x4-to-f32x4
Jun 12, 2020
Merged

Implement fcvt_from_uint (i32x4 -> f32x4) for x86#1765
abrown merged 5 commits intobytecodealliance:masterfrom
abrown:i32x4-to-f32x4

Conversation

@abrown
Copy link
Member

@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

Details 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
Member Author

abrown commented May 26, 2020

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

@abrown abrown marked this pull request as ready for review June 4, 2020 00:01
@abrown abrown requested a review from bnjbvr June 4, 2020 00:01
@bnjbvr bnjbvr requested review from julian-seward1 and removed request for bnjbvr June 9, 2020 13:26
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.

abrown added 5 commits June 12, 2020 11:20
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