mirror of
https://gitlab.com/suyu-emu/suyu.git
synced 2024-03-15 23:15:44 +00:00
shader: Fix fp16 merge when using native fp16
This commit is contained in:
parent
ca7ebdc471
commit
c4aab5c40e
|
@ -51,9 +51,9 @@ IR::U32 MergeResult(IR::IREmitter& ir, IR::Reg dest, const IR::F16& lhs, const I
|
|||
case Merge::MRG_H0:
|
||||
case Merge::MRG_H1: {
|
||||
const IR::Value vector{ir.UnpackFloat2x16(ir.GetReg(dest))};
|
||||
const bool h0{merge == Merge::MRG_H0};
|
||||
const IR::F16& insert{h0 ? lhs : rhs};
|
||||
return ir.PackFloat2x16(ir.CompositeInsert(vector, insert, h0 ? 0 : 1));
|
||||
const bool is_h0{merge == Merge::MRG_H0};
|
||||
const IR::F16 insert{ir.FPConvert(16, is_h0 ? lhs : rhs)};
|
||||
return ir.PackFloat2x16(ir.CompositeInsert(vector, insert, is_h0 ? 0 : 1));
|
||||
}
|
||||
}
|
||||
throw InvalidArgument("Invalid merge {}", merge);
|
||||
|
|
Loading…
Reference in a new issue