Skip to content

Commit

Permalink
shl should be positive
Browse files Browse the repository at this point in the history
Addresses #642.
  • Loading branch information
PeiMu committed Feb 28, 2023
1 parent fbf4365 commit bf8512d
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 9 deletions.
46 changes: 46 additions & 0 deletions analysis/statistics/646e82975915b2408b0987a6f62eeefcc365cda0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

changeset: 1432:646e82975915b2408b0987a6f62eeefcc365cda0
char kNewtonVersion[] = "0.3-alpha-1432 (646e82975915b2408b0987a6f62eeefcc365cda0) (build 02-25-2023-16:[email protected]_64)";
\n./src/noisy/noisy-linux-EN -O0 applications/noisy/helloWorld.n -s
\n./src/newton/newton-linux-EN -v 0 -eP applications/newton/invariants/ViolinWithTemperatureDependence-pigroups.nt

Informational Report:
---------------------
Invariant "ViolinWithTemperatureDependenceForPiGroups" has 2 unique kernels, each with 2 column(s)...

Kernel 0 is a valid kernel:

1 1
-0.5 -0
1 0
0.5 0
0 -1
-0 -1


The ordering of parameters is: P1 P0 P3 P2 P4 P5

Pi group 0, Pi 0 is: P0^(-0.5) P1^( 1) P2^(0.5) P3^( 1) P4^( 0) P5^(-0)

Pi group 0, Pi 1 is: P0^(-0) P1^( 1) P2^( 0) P3^( 0) P4^(-1) P5^(-1)


Kernel 1 is a valid kernel:

1 0
-0.5 1
1 -2
0.5 -1
-0 -2
0 -2


The ordering of parameters is: P1 P0 P3 P2 P4 P5

Pi group 1, Pi 0 is: P0^(-0.5) P1^( 1) P2^(0.5) P3^( 1) P4^(-0) P5^( 0)

Pi group 1, Pi 1 is: P0^( 1) P1^( 0) P2^(-1) P3^(-2) P4^(-2) P5^(-2)




2 changes: 1 addition & 1 deletion applications/newton/llvm-ir/performance_test/auto_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ int main(int argc, char** argv) {
if (!std::equal(ori_perf_data.function_results.begin(), ori_perf_data.function_results.end(),
opt_perf_data.function_results.begin())) {
std::cerr << "result error: " << test_cases[case_id] << " with parameters: " << param_str <<
"ori: " << ori_perf_data.function_results[0] << "opt: " << opt_perf_data.function_results[0] <<
"ori: " << ori_perf_data.function_results[0] << ", opt: " << opt_perf_data.function_results[0] <<
std::endl;
}

Expand Down
16 changes: 8 additions & 8 deletions src/newton/newton-irPass-LLVMIR-rangeAnalysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2060,20 +2060,20 @@ rangeAnalysis(State * N, llvm::Function & llvmIrFunction, BoundInfo * boundInfo,
switch (bitWidth)
{
case 8:
resMin = static_cast<int8_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<int8_t>(vrRangeIt->second.second) << constValue;
resMin = static_cast<uint8_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<uint8_t>(vrRangeIt->second.second) << constValue;
break;
case 16:
resMin = static_cast<int16_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<int16_t>(vrRangeIt->second.second) << constValue;
resMin = static_cast<uint16_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<uint16_t>(vrRangeIt->second.second) << constValue;
break;
case 32:
resMin = static_cast<int32_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<int32_t>(vrRangeIt->second.second) << constValue;
resMin = static_cast<uint32_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<uint32_t>(vrRangeIt->second.second) << constValue;
break;
case 64:
resMin = static_cast<int64_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<int64_t>(vrRangeIt->second.second) << constValue;
resMin = static_cast<uint64_t>(vrRangeIt->second.first) << constValue;
resMax = static_cast<uint64_t>(vrRangeIt->second.second) << constValue;
break;
default:
assert(false);
Expand Down

0 comments on commit bf8512d

Please sign in to comment.