mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-13 05:05:57 +00:00
shader_recompiler: Misc shader fixes. (#2781)
* shader_recompiler: Fix frexp exponent type. * shader_recompiler: Implement V_CMP_CLASS_F32 negative class mask. * shader_recompiler: Define operands for DS_ORDERED_COUNT.
This commit is contained in:
parent
657073b9e2
commit
bec1b9056f
5 changed files with 9 additions and 7 deletions
|
@ -267,12 +267,12 @@ Id EmitFPFrexpSig64(EmitContext& ctx, Id value) {
|
|||
|
||||
Id EmitFPFrexpExp32(EmitContext& ctx, Id value) {
|
||||
const auto frexp = ctx.OpFrexpStruct(ctx.frexp_result_f32, value);
|
||||
return ctx.OpCompositeExtract(ctx.U32[1], frexp, 1);
|
||||
return ctx.OpBitcast(ctx.U32[1], ctx.OpCompositeExtract(ctx.S32[1], frexp, 1));
|
||||
}
|
||||
|
||||
Id EmitFPFrexpExp64(EmitContext& ctx, Id value) {
|
||||
const auto frexp = ctx.OpFrexpStruct(ctx.frexp_result_f64, value);
|
||||
return ctx.OpCompositeExtract(ctx.U32[1], frexp, 1);
|
||||
return ctx.OpBitcast(ctx.U32[1], ctx.OpCompositeExtract(ctx.S32[1], frexp, 1));
|
||||
}
|
||||
|
||||
Id EmitFPOrdEqual16(EmitContext& ctx, Id lhs, Id rhs) {
|
||||
|
|
|
@ -153,9 +153,9 @@ void EmitContext::DefineArithmeticTypes() {
|
|||
|
||||
full_result_i32x2 = Name(TypeStruct(S32[1], S32[1]), "full_result_i32x2");
|
||||
full_result_u32x2 = Name(TypeStruct(U32[1], U32[1]), "full_result_u32x2");
|
||||
frexp_result_f32 = Name(TypeStruct(F32[1], U32[1]), "frexp_result_f32");
|
||||
frexp_result_f32 = Name(TypeStruct(F32[1], S32[1]), "frexp_result_f32");
|
||||
if (info.uses_fp64) {
|
||||
frexp_result_f64 = Name(TypeStruct(F64[1], U32[1]), "frexp_result_f64");
|
||||
frexp_result_f64 = Name(TypeStruct(F64[1], S32[1]), "frexp_result_f64");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue