Fix Shader Model 6.2 tests (#1036)
Fixing a bunch of SM 6.2 Tests - BinaryHalfOp tests reading input2 instead of input1 - Fixed converting signed zero from float to float16 - Fixed compiler options for float16 min,max test - Fixed expected results for following float16 operations - cos(0), sin(314), sin(-314) - frc(-7.39) - rsqrt(65504) - int16 subtraction - int16 unsigned multiplication - sqrt, rsqrt, round_pi, round_ni, fmad treat denorm as it is
This commit is contained in:
Родитель
e9120a1594
Коммит
d5d3d8d49a
|
@ -2838,6 +2838,17 @@ static TableParameter DenormTertiaryFPOpParameters[] = {
|
|||
{ L"Validation.Tolerance", TableParameter::DOUBLE, true },
|
||||
};
|
||||
|
||||
static bool IsHexString(PCWSTR str, uint16_t *value) {
|
||||
std::wstring wString(str);
|
||||
wString.erase(std::remove(wString.begin(), wString.end(), L' '), wString.end());
|
||||
LPCWSTR wstr = wString.c_str();
|
||||
if (wcsncmp(wstr, L"0x", 2) == 0 || wcsncmp(wstr, L"0b", 2) == 0) {
|
||||
*value = (uint16_t)wcstol(wstr, NULL, 0);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static HRESULT ParseDataToFloat(PCWSTR str, float &value) {
|
||||
std::wstring wString(str);
|
||||
wString.erase(std::remove(wString.begin(), wString.end(), L' '), wString.end());
|
||||
|
@ -3109,13 +3120,19 @@ HRESULT TableParameterHandler::ParseTableRow() {
|
|||
}
|
||||
table[i].m_halfTable.resize(tempTable.GetSize());
|
||||
for (size_t j = 0, end = tempTable.GetSize(); j != end; ++j) {
|
||||
float val;
|
||||
ParseDataToFloat(tempTable[j], val);
|
||||
if (isdenorm(val))
|
||||
table[i].m_halfTable[j] = signbit(val) ? Float16NegDenorm : Float16PosDenorm;
|
||||
else
|
||||
table[i].m_halfTable[j] = ConvertFloat32ToFloat16(val);
|
||||
}
|
||||
uint16_t value = 0;
|
||||
if (IsHexString(tempTable[j], &value)) {
|
||||
table[i].m_halfTable[j] = value;
|
||||
}
|
||||
else {
|
||||
float val;
|
||||
ParseDataToFloat(tempTable[j], val);
|
||||
if (isdenorm(val))
|
||||
table[i].m_halfTable[j] = signbit(val) ? Float16NegDenorm : Float16PosDenorm;
|
||||
else
|
||||
table[i].m_halfTable[j] = ConvertFloat32ToFloat16(val);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TableParameter::DOUBLE_TABLE: {
|
||||
|
@ -3543,7 +3560,7 @@ TEST_F(ExecutionTest, BinaryHalfOpTest) {
|
|||
for (size_t i = 0; i < count; ++i) {
|
||||
SBinaryHalfOp *p = &pPrimitives[i];
|
||||
p->input1 = (*Validation_Input1)[i % Validation_Input1->size()];
|
||||
p->input2 = (*Validation_Input1)[i % Validation_Input1->size()];
|
||||
p->input2 = (*Validation_Input2)[i % Validation_Input2->size()];
|
||||
}
|
||||
|
||||
// use shader from data table
|
||||
|
|
|
@ -272,7 +272,7 @@ inline uint16_t ConvertFloat32ToFloat16(float val) {
|
|||
|
||||
if (isLessThanNormal) {
|
||||
// Compute Denormal result
|
||||
return (uint16_t)(Abs.f_bits * *(float*)(&DenormalRatio)) | sign;
|
||||
return (uint16_t)(Abs.f_bits * *(float*)(&DenormalRatio)) | (sign >> 16);
|
||||
}
|
||||
else if (isInfOrNaN) {
|
||||
// Compute Inf or Nan result
|
||||
|
|
|
@ -514,7 +514,7 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
|
@ -1449,7 +1449,7 @@
|
|||
<Value>-0</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>1</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>10.0</Value>
|
||||
<Value>11.0</Value>
|
||||
|
@ -1665,7 +1665,7 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>-Inf</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>-1</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
|
@ -1715,8 +1715,8 @@
|
|||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-0.1585929</Value>
|
||||
<Value>0.1585929</Value>
|
||||
<Value>-0.1585929</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="ShaderOp.Arguments">-enable-16bit-types</Parameter>
|
||||
</Row>
|
||||
|
@ -1875,7 +1875,7 @@
|
|||
<Value>-1</Value>
|
||||
<Value>2.719</Value>
|
||||
<Value>1000.5</Value>
|
||||
<Value>-7.39</Value>
|
||||
<Value>0xC764</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
|
@ -1888,7 +1888,7 @@
|
|||
<Value>0</Value>
|
||||
<Value>0.719</Value>
|
||||
<Value>0.5</Value>
|
||||
<Value>0.61</Value>
|
||||
<Value>0x38E1</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="ShaderOp.Arguments">-enable-16bit-types</Parameter>
|
||||
</Row>
|
||||
|
@ -2003,10 +2003,10 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>1.0</Value>
|
||||
<Value>1.0</Value>
|
||||
<Value>1.0</Value>
|
||||
<Value>1.0</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>0.987344</Value>
|
||||
<Value>0.987344</Value>
|
||||
|
@ -2074,25 +2074,25 @@
|
|||
<Value>-denorm</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>denorm</Value>
|
||||
<Value>0x03FF</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>-1</Value>
|
||||
<Value>16.0</Value>
|
||||
<Value>256.0</Value>
|
||||
<Value>65500</Value>
|
||||
<Value>0x7bff</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-Inf</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-Inf</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>0x5800</Value>
|
||||
<Value>0</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>0.25</Value>
|
||||
<Value>0.0625</Value>
|
||||
<Value>0.00001526</Value>
|
||||
<Value>0x1C00</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="ShaderOp.Arguments">-enable-16bit-types</Parameter>
|
||||
</Row>
|
||||
|
@ -2117,7 +2117,7 @@
|
|||
<Value>-denorm</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>denorm</Value>
|
||||
<Value>0x03FF</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>-1</Value>
|
||||
<Value>2</Value>
|
||||
|
@ -2127,13 +2127,13 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0x1FFF</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>1.41421356237</Value>
|
||||
<Value>1.41421</Value>
|
||||
<Value>4.0</Value>
|
||||
<Value>16.0</Value>
|
||||
</Parameter>
|
||||
|
@ -2203,7 +2203,7 @@
|
|||
l.output2 = max(l.input1, l.input2);
|
||||
g_buf[GI] = l;
|
||||
};</Parameter>
|
||||
<Parameter Name="ShaderOp.Target">cs_6_0</Parameter>
|
||||
<Parameter Name="ShaderOp.Target">cs_6_2</Parameter>
|
||||
<Parameter Name="Validation.Input1">
|
||||
<Value>-inf</Value>
|
||||
<Value>-inf</Value>
|
||||
|
@ -2280,6 +2280,7 @@
|
|||
<Value>-1.0</Value>
|
||||
<Value>1.0</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="ShaderOp.Arguments">-enable-16bit-types</Parameter>
|
||||
</Row>
|
||||
<Row Name="FMulHalf">
|
||||
<Parameter Name="Validation.Type">ulp</Parameter>
|
||||
|
@ -2422,10 +2423,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.0</Value>
|
||||
<Value>-1.0</Value>
|
||||
|
@ -2436,10 +2436,9 @@
|
|||
<Parameter Name="Validation.Input2">
|
||||
<Value>NaN</Value>
|
||||
<Value>-Inf</Value>
|
||||
<Value>-denorm</Value>
|
||||
<Value>1</Value>
|
||||
<Value>-0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>denorm</Value>
|
||||
<Value>Inf</Value>
|
||||
<Value>1.0</Value>
|
||||
<Value>-1.0</Value>
|
||||
|
@ -2450,10 +2449,9 @@
|
|||
<Parameter Name="Validation.Input3">
|
||||
<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.0</Value>
|
||||
<Value>-1.0</Value>
|
||||
|
@ -2464,8 +2462,7 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>NaN</Value>
|
||||
<Value>NaN</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0x07FE</Value>
|
||||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>Inf</Value>
|
||||
|
@ -3537,7 +3534,7 @@
|
|||
<Value>0</Value>
|
||||
<Value>0</Value>
|
||||
<Value>40</Value>
|
||||
<Value>10001</Value>
|
||||
<Value>10100</Value>
|
||||
<Value>0</Value>
|
||||
</Parameter>
|
||||
<Parameter Name="ShaderOp.Arguments">-enable-16bit-types</Parameter>
|
||||
|
@ -3839,7 +3836,7 @@
|
|||
<Parameter Name="Validation.Expected1">
|
||||
<Value>-32768</Value>
|
||||
<Value>-20</Value>
|
||||
<Value>-3114</Value>
|
||||
<Value>3114</Value>
|
||||
<Value>-272</Value>
|
||||
<Value>-5</Value>
|
||||
<Value>32767</Value>
|
||||
|
|
|
@ -546,9 +546,11 @@ g_denorm_tests = ["FAddDenormAny", "FAddDenormFTZ", "FAddDenormPreserve",
|
|||
"FMinDenormAny", "FMinDenormFTZ", "FMinDenormPreserve",
|
||||
"FMaxDenormAny", "FMaxDenormFTZ", "FMaxDenormPreserve"]
|
||||
# This is a collection of test case for driver tests per instruction
|
||||
# Warning: For test cases, when you want to pass in signed integer,
|
||||
# Warning: For test cases, when you want to pass in signed 32-bit integer,
|
||||
# make sure to pass in negative numbers with decimal values instead of hexadecimal representation.
|
||||
# For some reason, TAEF is not handling them properly.
|
||||
# For half values, hex is preferable since the test framework will read string as float values
|
||||
# and convert them to float16, possibly losing precision. The test will read hex values as it is.
|
||||
def add_test_cases():
|
||||
nan = float('nan')
|
||||
p_inf = float('inf')
|
||||
|
@ -566,8 +568,8 @@ def add_test_cases():
|
|||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-314',
|
||||
'314'
|
||||
]], half_outputs=[[
|
||||
'NaN', 'NaN', '-0', '-0', '0', '0', 'NaN', '-0.1585929',
|
||||
'0.1585929'
|
||||
'NaN', 'NaN', '-0', '-0', '0', '0', 'NaN', '0.1585929',
|
||||
'-0.1585929'
|
||||
]])
|
||||
add_test_case_float_half('Cos', ['Cos'], 'Epsilon', 0.0008, [[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-314.16',
|
||||
|
@ -579,7 +581,7 @@ def add_test_cases():
|
|||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-314',
|
||||
'314'
|
||||
]], half_outputs=[[
|
||||
'NaN', 'NaN', '-0', '-0', '0', '0', 'NaN', '0.987344',
|
||||
'NaN', 'NaN', '1.0', '1.0', '1.0', '1.0', 'NaN', '0.987344',
|
||||
'0.987344'
|
||||
]])
|
||||
add_test_case_float_half('Tan', ['Tan'], 'Epsilon', 0.0008, [[
|
||||
|
@ -641,10 +643,10 @@ def add_test_cases():
|
|||
'0.611'
|
||||
]], "unary float", "frac",
|
||||
half_inputs=[['NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '2.719',
|
||||
'1000.5', '-7.39']],
|
||||
'1000.5', '0xC764']],
|
||||
half_outputs=[[
|
||||
'NaN', 'NaN', '0', '0', '0', '0', 'NaN', '0', '0.719', '0.5',
|
||||
'0.61']])
|
||||
'0x38E1']])
|
||||
add_test_case_float_half('Log', ['Log'], 'Relative', 21, [[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1',
|
||||
'2.718281828', '7.389056', '100'
|
||||
|
@ -662,9 +664,11 @@ def add_test_cases():
|
|||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '2',
|
||||
'16.0', '256.0'
|
||||
]], [[
|
||||
'NaN', 'NaN', '-0', '-0', '0', '0', 'Inf', 'NaN', '1.41421356237',
|
||||
'NaN', 'NaN', 'NaN', '-0', '0', '0', 'Inf', 'NaN', '1.41421356237',
|
||||
'4.0', '16.0'
|
||||
]], "unary float", "sqrt")
|
||||
]], "unary float", "sqrt",
|
||||
half_inputs=[['NaN', '-Inf', '-denorm', '-0', '0', '0x03FF', 'Inf', '-1', '2', '16.0', '256.0']],
|
||||
half_outputs=[['NaN', 'NaN', 'NaN', '0', '0', '0x1FFF', 'Inf', 'NaN', '1.41421', '4.0', '16.0']])
|
||||
add_test_case_float_half('Rsqrt', ['Rsqrt'], 'ulp', 1, [[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '16.0',
|
||||
'256.0', '65536.0'
|
||||
|
@ -672,11 +676,11 @@ def add_test_cases():
|
|||
'NaN', 'NaN', '-Inf', '-Inf', 'Inf', 'Inf', '0', 'NaN', '0.25',
|
||||
'0.0625', '0.00390625'
|
||||
]], "unary float", "rsqrt", half_inputs=[[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '-1', '16.0',
|
||||
'256.0', '65500'
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', '0x03FF', 'Inf', '-1', '16.0',
|
||||
'256.0', '0x7bff'
|
||||
]], half_outputs=[[
|
||||
'NaN', 'NaN', '-Inf', '-Inf', 'Inf', 'Inf', '0', 'NaN', '0.25',
|
||||
'0.0625', '0.00001526'
|
||||
'NaN', 'NaN', 'NaN', '-Inf', 'Inf', '0x5800', '0', 'NaN', '0.25',
|
||||
'0.0625', '0x1C00'
|
||||
]])
|
||||
add_test_case_float_half('Round_ne', ['Round_ne'], 'Epsilon', 0, [[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '10.0', '10.4',
|
||||
|
@ -691,12 +695,22 @@ def add_test_cases():
|
|||
]], [[
|
||||
'NaN', '-Inf', '-0', '-0', '0', '0', 'Inf', '10.0', '10.0', '10.0',
|
||||
'10.0', '-10.0', '-11.0', '-11.0', '-11.0'
|
||||
]], "unary float", "floor")
|
||||
]], "unary float", "floor", half_inputs=[[
|
||||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '10.0', '10.4',
|
||||
'10.5', '10.6', '-10.0', '-10.4', '-10.5', '-10.6'
|
||||
]], half_outputs=[[
|
||||
'NaN', '-Inf', '-1', '-0', '0', '0', 'Inf', '10.0', '10.0', '10.0',
|
||||
'10.0', '-10.0', '-11.0', '-11.0', '-11.0'
|
||||
]])
|
||||
add_test_case_float_half('Round_pi', ['Round_pi'], 'Epsilon', 0,
|
||||
[['NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '10.0', '10.4',
|
||||
'10.5', '10.6', '-10.0', '-10.4', '-10.5', '-10.6']],
|
||||
[['NaN', '-Inf', '-0', '-0', '0', '0', 'Inf', '10.0', '11.0', '11.0',
|
||||
'11.0', '-10.0', '-10.0', '-10.0', '-10.0']], "unary float", "ceil")
|
||||
'11.0', '-10.0', '-10.0', '-10.0', '-10.0']], "unary float", "ceil",
|
||||
half_inputs=[['NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '10.0', '10.4',
|
||||
'10.5', '10.6', '-10.0', '-10.4', '-10.5', '-10.6']],
|
||||
half_outputs=[['NaN', '-Inf', '-0', '-0', '0', '1', 'Inf', '10.0', '11.0', '11.0',
|
||||
'11.0', '-10.0', '-10.0', '-10.0', '-10.0']])
|
||||
add_test_case_float_half('Round_z', ['Round_z'], 'Epsilon', 0,
|
||||
[['NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '10.0', '10.4',
|
||||
'10.5', '10.6', '-10.0', '-10.4', '-10.5', '-10.6']],
|
||||
|
@ -753,7 +767,7 @@ def add_test_cases():
|
|||
], [
|
||||
'-inf', 'inf', '1.0', '-inf', 'inf', 'inf', 'inf', 'inf', '-inf',
|
||||
'inf', '1.0', 'NaN', '1.0', 'inf', '1.0', '-1.0', '1.0'
|
||||
]], 'cs_6_0', ''' struct SBinaryHalfOp {
|
||||
]], 'cs_6_2', ''' struct SBinaryHalfOp {
|
||||
half input1;
|
||||
half input2;
|
||||
half output1;
|
||||
|
@ -766,7 +780,7 @@ def add_test_cases():
|
|||
l.output1 = min(l.input1, l.input2);
|
||||
l.output2 = max(l.input1, l.input2);
|
||||
g_buf[GI] = l;
|
||||
};''')
|
||||
};''', shader_arguments="-enable-16bit-types")
|
||||
add_test_case_float_half('FAdd', ['FAdd'], 'ulp', 1, [['-1.0', '1.0', '32.5', '1.0000001000'],['4', '5.5', '334.7', '0.5000001000']], [['3.0', '6.5', '367.2', '1.5000002000']],
|
||||
"binary float", "+")
|
||||
add_test_case_float_half('FSub', ['FSub'], 'ulp', 1, [['-1.0', '5.5', '32.5', '1.0000001000'],['4', '1.25', '334.7', '0.5000001000']], [['-5', '4.25', '-302.2', '0.5000']],
|
||||
|
@ -808,7 +822,18 @@ def add_test_cases():
|
|||
'NaN', '-Inf', '-denorm', '-0', '0', 'denorm', 'Inf', '1.0', '-1.0',
|
||||
'1', '0', '-5.5'
|
||||
]], [['NaN', 'NaN', '0', '0', '0', '0', 'Inf', '2', '0', '1', '1', '9.5']],
|
||||
"tertiary float", "mad")
|
||||
"tertiary float", "mad",
|
||||
half_inputs=[[
|
||||
'NaN', '-Inf', '0x03FF', '-0', '0', 'Inf', '1.0', '-1.0',
|
||||
'0', '1', '1.5'
|
||||
], [
|
||||
'NaN', '-Inf', '1', '-0', '0', 'Inf', '1.0', '-1.0',
|
||||
'0', '1', '10'
|
||||
], [
|
||||
'NaN', '-Inf', '0x03FF', '-0', '0', 'Inf', '1.0', '-1.0',
|
||||
'1', '0', '-5.5'
|
||||
]],
|
||||
half_outputs=[['NaN', 'NaN', '0x07FE', '0', '0', 'Inf', '2', '0', '1', '1', '9.5']])
|
||||
|
||||
# Denorm Tertiary Float
|
||||
add_test_case_denorm('FMadDenorm', ['FMad'], 'ulp', 1,
|
||||
|
@ -882,7 +907,7 @@ def add_test_cases():
|
|||
"binary int", "-",
|
||||
input_16=[[int16_min, '-10', '0', '0', '10', int16_max],
|
||||
['0', '10', '-3114', '272', '15', '0']],
|
||||
output_16=[[int16_min, '-20', '-3114', '-272', '-5', int16_max]])
|
||||
output_16=[[int16_min, '-20', '3114', '-272', '-5', int16_max]])
|
||||
add_test_case_int('IMax', ['IMax'], 'Epsilon', 0,
|
||||
[[int32_min, '-10', '0', '0', '10', int32_max],
|
||||
['0', '10', '-10', '10', '10', '0']],
|
||||
|
@ -1011,7 +1036,7 @@ def add_test_cases():
|
|||
"binary uint", "*",
|
||||
input_16=[['0', '0', '10', '100', int16_max],
|
||||
['0', '256', '4', '101', '0']],
|
||||
output_16=[['0', '0', '40', '10001', '0']])
|
||||
output_16=[['0', '0', '40', '10100', '0']])
|
||||
add_test_case('UDiv', ['UDiv', 'URem'], 'Epsilon', 0,
|
||||
[['1', '1', '10', '10000', int32_max, int32_max, '0xffffffff'],
|
||||
['0', '256', '4', '10001', '0', int32_max, '1']],
|
||||
|
@ -1669,6 +1694,7 @@ def generate_table_for_taef():
|
|||
print(cur_inst.dxil_class)
|
||||
tree._setroot(root)
|
||||
tree.write(f)
|
||||
print("Saved file at: " + f.name)
|
||||
f.close()
|
||||
|
||||
def print_untested_inst():
|
||||
|
|
Загрузка…
Ссылка в новой задаче