Skip to content

Add the tablegen mechanism to lower intrinsics to DXIL ops with extra enum arguments. #112974

@adam-yang

Description

@adam-yang

Some DXIL ops are generic operations that take additional enums to specify the actual type of operation. Here's a quick list of operations that fit the pattern:

WaveActiveOp          _, WaveOpKind, SignedOpKind
WaveActiveBit         _, WaveBitOpKind
WavePrefixOp          _, WaveOpKind, SignedOpKind
QuadOp                _, QuadOpKind
WaveMultiPrefixOp     _, _, _, _, _, WaveMultiPrefixOpKind, SignedOpKind
QuadVote              _, _, QuadVoteOpKind
Barrier               BarrierMode

AtomicBinOp           _, AtomicBinOpCode, _, _, _, _
WaveMatrix_ScalarOp   _, WaveMatrixScalarOpCode, _

We need a tablegen solution to easily declare:

  • What intrinsic should lower to this DXIL op
  • What arguments should come from the original intrinsic and what order should they be
  • What additional enum arguments should the specific intrinsic map to.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions