-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Support bitcasting between scalar and vector types #6104
Copy link
Copy link
Closed
Labels
craneliftIssues related to the Cranelift code generatorIssues related to the Cranelift code generatorcranelift:E-compiler-easyBeginner–Intermediate compiler issues.Beginner–Intermediate compiler issues.cranelift:area:aarch64Issues related to AArch64 backend.Issues related to AArch64 backend.cranelift:area:riscv64Issues related to the RISC-V 64 backend.Issues related to the RISC-V 64 backend.cranelift:area:s390xIssues related to Cranelift's s390x backendIssues related to Cranelift's s390x backendcranelift:area:x64Issues related to x64 codegenIssues related to x64 codegen
Description
Feature
See title. For example v0 = vconst.i64x2 ...; bitcast.i128 little v0.
Benefit
This allows bitcasting between the two without having to go through memory. Cg_clif needs this bitcasting for implementing mem::transmute and float to 128bit int casts on Windows. Currently it has to go through the stack, which is slower and inhibits optimizations.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
craneliftIssues related to the Cranelift code generatorIssues related to the Cranelift code generatorcranelift:E-compiler-easyBeginner–Intermediate compiler issues.Beginner–Intermediate compiler issues.cranelift:area:aarch64Issues related to AArch64 backend.Issues related to AArch64 backend.cranelift:area:riscv64Issues related to the RISC-V 64 backend.Issues related to the RISC-V 64 backend.cranelift:area:s390xIssues related to Cranelift's s390x backendIssues related to Cranelift's s390x backendcranelift:area:x64Issues related to x64 codegenIssues related to x64 codegen