瀏覽代碼

Preserve denorms for frc on half inputs, and fix sqrt(-denorm) for float (#1042)

Young Kim 7 年之前
父節點
當前提交
6f2aaa6ab3
共有 2 個文件被更改,包括 6 次插入8 次删除
  1. 3 5
      tools/clang/unittests/HLSL/ShaderOpArithTable.xml
  2. 3 3
      utils/hct/hctdb_test.py

+ 3 - 5
tools/clang/unittests/HLSL/ShaderOpArithTable.xml

@@ -514,7 +514,7 @@
             <Parameter Name="Validation.Expected1">
                 <Value>NaN</Value>
                 <Value>NaN</Value>
-                <Value>NaN</Value>
+                <Value>-0</Value>
                 <Value>-0</Value>
                 <Value>0</Value>
                 <Value>0</Value>
@@ -1867,10 +1867,9 @@
             <Parameter Name="Validation.Input1">
                 <Value>NaN</Value>
                 <Value>-Inf</Value>
-                <Value>-denorm</Value>
+                <Value>0x03FF</Value>
                 <Value>-0</Value>
                 <Value>0</Value>
-                <Value>denorm</Value>
                 <Value>Inf</Value>
                 <Value>-1</Value>
                 <Value>2.719</Value>
@@ -1880,8 +1879,7 @@
             <Parameter Name="Validation.Expected1">
                 <Value>NaN</Value>
                 <Value>NaN</Value>
-                <Value>0</Value>
-                <Value>0</Value>
+                <Value>0x03FF</Value>
                 <Value>0</Value>
                 <Value>0</Value>
                 <Value>NaN</Value>

+ 3 - 3
utils/hct/hctdb_test.py

@@ -642,10 +642,10 @@ def add_test_cases():
         'NaN', 'NaN', '0', '0', '0', '0', 'NaN', '0', '0.718280', '0.599976',
         '0.611'
     ]], "unary float", "frac",
-        half_inputs=[['NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '2.719',
+        half_inputs=[['NaN', '-Inf', '0x03FF', '-0', '0', 'Inf', '-1', '2.719',
         '1000.5', '0xC764']],
         half_outputs=[[
-         'NaN', 'NaN', '0', '0', '0', '0', 'NaN', '0', '0.719', '0.5',
+         'NaN', 'NaN', '0x03FF', '0', '0', 'NaN', '0', '0.719', '0.5',
         '0x38E1']])
     add_test_case_float_half('Log', ['Log'], 'Relative', 21, [[
         'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1',
@@ -664,7 +664,7 @@ def add_test_cases():
         'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '2',
         '16.0', '256.0'
     ]], [[
-        'NaN', 'NaN', 'NaN', '-0', '0', '0', 'Inf', 'NaN', '1.41421356237',
+        'NaN', 'NaN', '-0', '-0', '0', '0', 'Inf', 'NaN', '1.41421356237',
         '4.0', '16.0'
     ]], "unary float", "sqrt",
     half_inputs=[['NaN', '-Inf', '-denorm', '-0', '0', '0x03FF', 'Inf', '-1', '2', '16.0', '256.0']],