diff --git a/src/webgpu/shader/validation/expression/binary/div_rem.spec.ts b/src/webgpu/shader/validation/expression/binary/div_rem.spec.ts index 4169786cb69b..ca83f6c07fbe 100644 --- a/src/webgpu/shader/validation/expression/binary/div_rem.spec.ts +++ b/src/webgpu/shader/validation/expression/binary/div_rem.spec.ts @@ -142,10 +142,14 @@ g.test('scalar_vector_out_of_range') return p.nonOneIndex === 0; }) .expandWithParams(p => { + // When lhs is a non-const expression, division by zero is only an error for integral types. + const partialDivByZeroIsError = [Type.i32, Type.u32].includes( + scalarTypeOf(kScalarAndVectorTypes[p.rhs]) + ); const cases = [ { leftValue: 42, rightValue: 0, error: true, leftRuntime: false }, - { leftValue: 42, rightValue: 0, error: true, leftRuntime: true }, - { leftValue: 0, rightValue: 0, error: true, leftRuntime: true }, + { leftValue: 42, rightValue: 0, error: partialDivByZeroIsError, leftRuntime: true }, + { leftValue: 0, rightValue: 0, error: partialDivByZeroIsError, leftRuntime: true }, { leftValue: 0, rightValue: 42, error: false, leftRuntime: false }, ]; if (p.lhs === 'i32') {