glasm: Add conversion instructions to GLASM
This commit is contained in:
parent
7703d65f23
commit
ad61b47f80
9 changed files with 351 additions and 282 deletions
|
@ -198,8 +198,8 @@ void EmitBitCastU64F64(EmitContext& ctx, IR::Inst& inst, const IR::Value& value)
|
|||
void EmitBitCastF16U16(EmitContext& ctx, IR::Inst& inst, const IR::Value& value);
|
||||
void EmitBitCastF32U32(EmitContext& ctx, IR::Inst& inst, const IR::Value& value);
|
||||
void EmitBitCastF64U64(EmitContext& ctx, IR::Inst& inst, const IR::Value& value);
|
||||
void EmitPackUint2x32(EmitContext& ctx, Register value);
|
||||
void EmitUnpackUint2x32(EmitContext& ctx, Register value);
|
||||
void EmitPackUint2x32(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitUnpackUint2x32(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitPackFloat2x16(EmitContext& ctx, Register value);
|
||||
void EmitUnpackFloat2x16(EmitContext& ctx, Register value);
|
||||
void EmitPackHalf2x16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
|
@ -244,20 +244,22 @@ void EmitFPSaturate16(EmitContext& ctx, Register value);
|
|||
void EmitFPSaturate32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitFPSaturate64(EmitContext& ctx, Register value);
|
||||
void EmitFPClamp16(EmitContext& ctx, Register value, Register min_value, Register max_value);
|
||||
void EmitFPClamp32(EmitContext& ctx, ScalarF32 value, ScalarF32 min_value, ScalarF32 max_value);
|
||||
void EmitFPClamp64(EmitContext& ctx, Register value, Register min_value, Register max_value);
|
||||
void EmitFPClamp32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value, ScalarF32 min_value,
|
||||
ScalarF32 max_value);
|
||||
void EmitFPClamp64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value, ScalarF64 min_value,
|
||||
ScalarF64 max_value);
|
||||
void EmitFPRoundEven16(EmitContext& ctx, Register value);
|
||||
void EmitFPRoundEven32(EmitContext& ctx, ScalarF32 value);
|
||||
void EmitFPRoundEven64(EmitContext& ctx, Register value);
|
||||
void EmitFPRoundEven32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitFPRoundEven64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitFPFloor16(EmitContext& ctx, Register value);
|
||||
void EmitFPFloor32(EmitContext& ctx, ScalarF32 value);
|
||||
void EmitFPFloor64(EmitContext& ctx, Register value);
|
||||
void EmitFPFloor32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitFPFloor64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitFPCeil16(EmitContext& ctx, Register value);
|
||||
void EmitFPCeil32(EmitContext& ctx, ScalarF32 value);
|
||||
void EmitFPCeil64(EmitContext& ctx, Register value);
|
||||
void EmitFPCeil32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitFPCeil64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitFPTrunc16(EmitContext& ctx, Register value);
|
||||
void EmitFPTrunc32(EmitContext& ctx, ScalarF32 value);
|
||||
void EmitFPTrunc64(EmitContext& ctx, Register value);
|
||||
void EmitFPTrunc32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitFPTrunc64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitFPOrdEqual16(EmitContext& ctx, Register lhs, Register rhs);
|
||||
void EmitFPOrdEqual32(EmitContext& ctx, IR::Inst& inst, ScalarF32 lhs, ScalarF32 rhs);
|
||||
void EmitFPOrdEqual64(EmitContext& ctx, IR::Inst& inst, ScalarF64 lhs, ScalarF64 rhs);
|
||||
|
@ -441,54 +443,54 @@ void EmitLogicalOr(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
|
|||
void EmitLogicalAnd(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
|
||||
void EmitLogicalXor(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
|
||||
void EmitLogicalNot(EmitContext& ctx, IR::Inst& inst, ScalarS32 value);
|
||||
void EmitConvertS16F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertS16F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertS16F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertS32F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertS32F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertS32F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertS64F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertS64F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertS64F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertU16F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertU16F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertU16F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertU32F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertU32F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertU32F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertU64F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertU64F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertU64F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertU64U32(EmitContext& ctx, Register value);
|
||||
void EmitConvertU32U64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32F16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32F64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64F32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16S8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16S16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16S32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16S64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16U8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16U16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16U32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF16U64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32S8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32S16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32S32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32S64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32U8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32U16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32U32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF32U64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64S8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64S16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64S32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64S64(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64U8(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64U16(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64U32(EmitContext& ctx, Register value);
|
||||
void EmitConvertF64U64(EmitContext& ctx, Register value);
|
||||
void EmitConvertS16F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertS16F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertS16F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertS32F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertS32F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertS32F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertS64F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertS64F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertS64F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertU16F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertU16F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertU16F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertU32F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertU32F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertU32F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertU64F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertU64F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertU64F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertU64U32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value);
|
||||
void EmitConvertU32U64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertF32F16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32F64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
|
||||
void EmitConvertF64F32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
|
||||
void EmitConvertF16S8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16S16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16S32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value);
|
||||
void EmitConvertF16S64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16U8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16U16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF16U32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value);
|
||||
void EmitConvertF16U64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32S8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32S16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32S32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value);
|
||||
void EmitConvertF32S64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32U8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32U16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF32U32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value);
|
||||
void EmitConvertF32U64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64S8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64S16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64S32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value);
|
||||
void EmitConvertF64S64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64U8(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64U16(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitConvertF64U32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value);
|
||||
void EmitConvertF64U64(EmitContext& ctx, IR::Inst& inst, Register value);
|
||||
void EmitBindlessImageSampleImplicitLod(EmitContext&);
|
||||
void EmitBindlessImageSampleExplicitLod(EmitContext&);
|
||||
void EmitBindlessImageSampleDrefImplicitLod(EmitContext&);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue