glsl: Add many FP32/64 instructions

This commit is contained in:
ameerj
2021-05-22 01:52:03 -04:00
parent 53667ddd4e
commit 5e9095ef22
12 changed files with 1011 additions and 765 deletions

View File

@ -355,54 +355,6 @@ void EmitWriteSharedU128(EmitContext& ctx, std::string_view offset, std::string_
NotImplemented();
}
void EmitBitCastU16F16(EmitContext& ctx) {
NotImplemented();
}
void EmitBitCastU32F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitBitCastU64F64(EmitContext& ctx) {
NotImplemented();
}
void EmitBitCastF16U16(EmitContext& ctx) {
NotImplemented();
}
void EmitBitCastF32U32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitBitCastF64U64(EmitContext& ctx) {
NotImplemented();
}
void EmitPackFloat2x16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitUnpackFloat2x16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitPackHalf2x16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitUnpackHalf2x16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitPackDouble2x32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitUnpackDouble2x32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitGetZeroFromOp(EmitContext& ctx) {
NotImplemented();
}
@ -427,352 +379,6 @@ void EmitGetInBoundsFromOp(EmitContext& ctx) {
NotImplemented();
}
void EmitFPAbs16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPAbs32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPAbs64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPAdd16(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPAdd32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPAdd64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPFma16(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b,
std::string_view c) {
NotImplemented();
}
void EmitFPFma32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b,
std::string_view c) {
NotImplemented();
}
void EmitFPFma64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b,
std::string_view c) {
NotImplemented();
}
void EmitFPMax32(EmitContext& ctx, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMax64(EmitContext& ctx, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMin32(EmitContext& ctx, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMin64(EmitContext& ctx, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMul16(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMul32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPMul64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
NotImplemented();
}
void EmitFPNeg16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPNeg32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPNeg64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPSin(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPCos(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPExp2(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPLog2(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRecip32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRecip64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRecipSqrt32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRecipSqrt64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPSqrt(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPSaturate16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPSaturate32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPSaturate64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPClamp16(EmitContext& ctx, std::string_view value, std::string_view min_value,
std::string_view max_value) {
NotImplemented();
}
void EmitFPClamp32(EmitContext& ctx, std::string_view value, std::string_view min_value,
std::string_view max_value) {
NotImplemented();
}
void EmitFPClamp64(EmitContext& ctx, std::string_view value, std::string_view min_value,
std::string_view max_value) {
NotImplemented();
}
void EmitFPRoundEven16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRoundEven32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPRoundEven64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPFloor16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPFloor32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPFloor64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPCeil16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPCeil32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPCeil64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPTrunc16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPTrunc32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPTrunc64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPOrdEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdNotEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdNotEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdNotEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordNotEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordNotEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordNotEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThan16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThan32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThan64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThan16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThan32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThan64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThan16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThan32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThan64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThan16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThan32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThan64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThanEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThanEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdLessThanEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThanEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThanEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordLessThanEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThanEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThanEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPOrdGreaterThanEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThanEqual16(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThanEqual32(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPUnordGreaterThanEqual64(EmitContext& ctx, std::string_view lhs, std::string_view rhs) {
NotImplemented();
}
void EmitFPIsNan16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPIsNan32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitFPIsNan64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitSharedAtomicIAdd32(EmitContext& ctx, std::string_view pointer_offset,
std::string_view value) {
NotImplemented();
@ -1100,198 +706,6 @@ void EmitLogicalNot(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS16F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS16F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS16F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS32F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS32F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS32F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS64F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS64F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertS64F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU16F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU16F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU16F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU32F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU32F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU32F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU64F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU64F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU64F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU64U32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertU32U64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32F16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32F64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64F32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16S8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16S16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16S32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16S64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16U8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16U16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16U32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF16U64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32S8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32S16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32S32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32S64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32U8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32U16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32U32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF32U64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64S8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64S16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64S32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64S64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64U8(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64U16(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64U32(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitConvertF64U64(EmitContext& ctx, std::string_view value) {
NotImplemented();
}
void EmitBindlessImageSampleImplicitLod(EmitContext&) {
NotImplemented();
}