review changes

This commit is contained in:
mahmoud radwan 2025-04-27 17:34:58 +03:00
parent 9e60665c73
commit 62a5f132c3
2 changed files with 6 additions and 4 deletions

View File

@ -82,13 +82,15 @@ inline F32 ApplyWriteNumberConversion(IREmitter& ir, const F32& value,
const IR::F32 max = ir.Imm32(float(std::numeric_limits<u8>::max())); const IR::F32 max = ir.Imm32(float(std::numeric_limits<u8>::max()));
const IR::F32 mul = ir.FPMul(ir.FPClamp(value, ir.Imm32(-1.f), ir.Imm32(1.f)), max); const IR::F32 mul = ir.FPMul(ir.FPClamp(value, ir.Imm32(-1.f), ir.Imm32(1.f)), max);
const IR::F32 left = ir.FPSub(mul, ir.Imm32(1.f)); const IR::F32 left = ir.FPSub(mul, ir.Imm32(1.f));
return ir.BitCast<F32>(U32{ir.FPDiv(left, ir.Imm32(2.f))}); const IR::U32 raw = ir.ConvertFToS(32, ir.FPDiv(left, ir.Imm32(2.f)));
return ir.BitCast<F32>(raw);
} }
case AmdGpu::NumberConversion::Sint16ToSnormNz: { case AmdGpu::NumberConversion::Sint16ToSnormNz: {
const IR::F32 max = ir.Imm32(float(std::numeric_limits<u16>::max())); const IR::F32 max = ir.Imm32(float(std::numeric_limits<u16>::max()));
const IR::F32 mul = ir.FPMul(ir.FPClamp(value, ir.Imm32(-1.f), ir.Imm32(1.f)), max); const IR::F32 mul = ir.FPMul(ir.FPClamp(value, ir.Imm32(-1.f), ir.Imm32(1.f)), max);
const IR::F32 left = ir.FPSub(mul, ir.Imm32(1.f)); const IR::F32 left = ir.FPSub(mul, ir.Imm32(1.f));
return ir.BitCast<F32>(U32{ir.FPDiv(left, ir.Imm32(2.f))}); const IR::U32 raw = ir.ConvertFToS(32, ir.FPDiv(left, ir.Imm32(2.f)));
return ir.BitCast<F32>(raw);
} }
default: default:
UNREACHABLE(); UNREACHABLE();

View File

@ -197,8 +197,8 @@ enum class NumberConversion : u32 {
UintToUscaled = 1, UintToUscaled = 1,
SintToSscaled = 2, SintToSscaled = 2,
UnormToUbnorm = 3, UnormToUbnorm = 3,
Sint16ToSnormNz = 5, Sint8ToSnormNz = 5,
Sint8ToSnormNz = 6, Sint16ToSnormNz = 6,
}; };
struct CompMapping { struct CompMapping {