frontend/ir_emitter: Add half-precision opcode variant for FPRSqrtEstimate

This commit is contained in:
Lioncash
2019-04-13 18:34:35 -04:00
committed by MerryMage
parent 726b9914c5
commit 5dba99b4f4
5 changed files with 17 additions and 4 deletions

View File

@@ -1967,11 +1967,18 @@ U16U32U64 IREmitter::FPRoundInt(const U16U32U64& a, FP::RoundingMode rounding, b
}
}
U32U64 IREmitter::FPRSqrtEstimate(const U32U64& a) {
if (a.GetType() == Type::U32) {
U16U32U64 IREmitter::FPRSqrtEstimate(const U16U32U64& a) {
switch (a.GetType()) {
case Type::U16:
return Inst<U16>(Opcode::FPRSqrtEstimate16, a);
case Type::U32:
return Inst<U32>(Opcode::FPRSqrtEstimate32, a);
case Type::U64:
return Inst<U64>(Opcode::FPRSqrtEstimate64, a);
default:
UNREACHABLE();
return U16U32U64{};
}
return Inst<U64>(Opcode::FPRSqrtEstimate64, a);
}
U32U64 IREmitter::FPRSqrtStepFused(const U32U64& a, const U32U64& b) {