Skip to content

Support bitcasting between scalar and vector types #6104

@bjorn3

Description

@bjorn3

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    craneliftIssues related to the Cranelift code generatorcranelift:E-compiler-easyBeginner–Intermediate compiler issues.cranelift:area:aarch64Issues related to AArch64 backend.cranelift:area:riscv64Issues related to the RISC-V 64 backend.cranelift:area:s390xIssues related to Cranelift's s390x backendcranelift:area:x64Issues related to x64 codegen

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions