shader_recompiler: Implement basic 64-bit floating point support (#915)

* shader_recompiler: Implement basic 64-bit floating point support

* Fix formatting
This commit is contained in:
Daniel R. 2024-09-15 22:53:08 +02:00 committed by GitHub
parent 75a4df53a5
commit dcf245b814
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 65 additions and 30 deletions

View file

@ -198,6 +198,8 @@ void Translator::EmitVectorAlu(const GcnInst& inst) {
return V_FMA_F32(inst);
case Opcode::V_MAX_F32:
return V_MAX_F32(inst);
case Opcode::V_MAX_F64:
return V_MAX_F64(inst);
case Opcode::V_RSQ_F32:
return V_RSQ_F32(inst);
case Opcode::V_SIN_F32:
@ -582,6 +584,12 @@ void Translator::V_MAX_F32(const GcnInst& inst, bool is_legacy) {
SetDst(inst.dst[0], ir.FPMax(src0, src1, is_legacy));
}
void Translator::V_MAX_F64(const GcnInst& inst) {
const IR::F64 src0{GetSrc64<IR::F64>(inst.src[0])};
const IR::F64 src1{GetSrc64<IR::F64>(inst.src[1])};
SetDst64(inst.dst[0], ir.FPMax(src0, src1));
}
void Translator::V_MAX_U32(bool is_signed, const GcnInst& inst) {
const IR::U32 src0{GetSrc(inst.src[0])};
const IR::U32 src1{GetSrc(inst.src[1])};