shader: compute add-with-carry with compares and remove IAddCarry32

This commit is contained in:
nmzik
2026-10-21 22:28:11 +02:00
parent c571d8ed5a
commit 6e5167598e
8 changed files with 17 additions and 50 deletions
+3 -6
View File
@@ -237,12 +237,9 @@ void TestShaderBaseAndUserData() {
void TestCarryAndBitFields() {
Fixture fixture;
const auto carry =
fixture.Emit(ValueOpcode::IAddCarry32, {Value(0xffffffffu), Value(2u)});
const auto low =
fixture.Emit(ValueOpcode::CompositeExtractU32x2, {carry, Value(0u)});
const auto high =
fixture.Emit(ValueOpcode::CompositeExtractU32x2, {carry, Value(1u)});
const auto low = fixture.Emit(ValueOpcode::IAdd32, {Value(0xffffffffu), Value(2u)});
const auto carry = fixture.Emit(ValueOpcode::ULessThan32, {low, Value(0xffffffffu)});
const auto high = fixture.Emit(ValueOpcode::SelectU32, {carry, Value(1u), Value(0u)});
const auto inserted =
fixture.Emit(ValueOpcode::BitFieldInsert,
{Value(0u), Value(0x89abcdefu), Value(0u), Value(32u)});