tint: Add tests showing tint:1332 is fixed

The abstract-numeric work has fixed this, by removing the error for
small floating point numbers.

Fixed: tint:1332
Change-Id: Ibf7382795210220d343d62fe22d201cf67db1ccc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92244
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
Ben Clayton 2022-06-01 18:26:40 +00:00 committed by Dawn LUCI CQ
parent e58a712fdd
commit b1d5bc8418
6 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,5 @@
@stage(compute) @workgroup_size(1)
fn compute_main() {
let a = 1.23;
var b = max(a, 1.17549435e-38);
}

View File

@ -0,0 +1,11 @@
#version 310 es
void compute_main() {
float b = max(1.230000019f, 1.17549435e-38f);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
compute_main();
return;
}

View File

@ -0,0 +1,5 @@
[numthreads(1, 1, 1)]
void compute_main() {
float b = max(1.230000019f, 1.17549435e-38f);
return;
}

View File

@ -0,0 +1,9 @@
#include <metal_stdlib>
using namespace metal;
kernel void compute_main() {
float const a = 1.230000019f;
float b = fmax(1.230000019f, 1.17549435e-38f);
return;
}

View File

@ -0,0 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 13
; Schema: 0
OpCapability Shader
%8 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %compute_main "compute_main"
OpName %b "b"
%void = OpTypeVoid
%1 = OpTypeFunction %void
%float = OpTypeFloat 32
%float_1_23000002 = OpConstant %float 1.23000002
%float_1_17549435en38 = OpConstant %float 1.17549435e-38
%_ptr_Function_float = OpTypePointer Function %float
%12 = OpConstantNull %float
%compute_main = OpFunction %void None %1
%4 = OpLabel
%b = OpVariable %_ptr_Function_float Function %12
%7 = OpExtInst %float %8 NMax %float_1_23000002 %float_1_17549435en38
OpStore %b %7
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,5 @@
@stage(compute) @workgroup_size(1)
fn compute_main() {
let a = 1.230000019;
var b = max(a, 1.17549435e-38);
}