shader: decode S_FLBIT_I32 and S_FLBIT_I32_I64 with a 4-op signed leading-bit search

This commit is contained in:
nmzik
2026-10-23 13:22:50 +02:00
parent 3688412dca
commit ecc30a1f2d
6 changed files with 71 additions and 10 deletions
@@ -238,10 +238,12 @@ void Translator::EmitScalar(const Decoder::Instruction& inst) {
return ComposedIntegerBinary(inst, IR::ValueOpcode::BitwiseOr32, false, true, true);
case O::S_XNOR_B32:
return ComposedIntegerBinary(inst, IR::ValueOpcode::BitwiseXor32, false, true, true);
case O::S_FF0_I32_B64: return S_FF_I32_B64(inst, true, false);
case O::S_FF1_I32_B64: return S_FF_I32_B64(inst, false, false);
case O::S_FF0_I32_B64: return S_FF_I32_B64(inst, true, false, false);
case O::S_FF1_I32_B64: return S_FF_I32_B64(inst, false, false, false);
case O::S_FLBIT_I32_B32: return V_FFBH_32(inst, false);
case O::S_FLBIT_I32_B64: return S_FF_I32_B64(inst, false, true);
case O::S_FLBIT_I32_B64: return S_FF_I32_B64(inst, false, true, false);
case O::S_FLBIT_I32: return V_FFBH_32(inst, true);
case O::S_FLBIT_I32_I64: return S_FF_I32_B64(inst, false, true, true);
case O::S_BITSET0_B32: return S_BITSET_B32(inst, false);
case O::S_BITSET1_B32: return S_BITSET_B32(inst, true);