Skip to content

[JIT] Splitting instrDesc for EVEX encoded instruction #87016

Closed
@Ruihan-Yin

Description

@Ruihan-Yin

EVEX has introduced a group of extra bits in its encoding format:

  • EVEX.aaa: Embedded opmask register specifier
  • EVEX.Z: Zeroing/Merging
  • EVEX.b: Broadcast/RC/SAE Context
  • EVEX.L'L: Vector length/RC

dotnet#84821 has implemented the EVEX.b in the instrDecs data structure as an extra "small" constants. This implementation will introduce throughput regression due to the increased size for every instrDesc instance.

Given the fact that EVEX encoded instructions are rarely used at current stage, please consider splitting a new instrDecs for EVEX instructions alone, such that the non-EVEX instructions won't be affected by the introduction of these new bits in the instrDesc.

Metadata

Metadata

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions