Changes in directory llvm-test/SingleSource/UnitTests/Integer/APInt:
gptest.cpp updated: 1.9 -> 1.10 --- Log message: Hack around pari/gp's inability to do an arithmetic shift right. --- Diffs of the changes: (+11 -13) gptest.cpp | 24 +++++++++++------------- 1 files changed, 11 insertions(+), 13 deletions(-) Index: llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp diff -u llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.9 llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.10 --- llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.9 Thu Mar 1 22:56:56 2007 +++ llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp Fri Mar 2 14:52:41 2007 @@ -265,22 +265,20 @@ printf(" u>> %d = %s (not %s)\n", i, gpresult.c_str(), apresult.c_str()); fflush(stdout); } + cmd = "shift(" + v1.toString(10,false) + ",-" + utostr(i) + ")"; if (v1.isNegative()) { - cmd = "shift(" + v1.toString(10,true) + ",-" + utostr(i-1) + ")\n"; - R1 = v1.ashr(i-1); - apresult = R1.toString(10,true); - } else { - cmd = "shift(" + v1.toString(10,false) + ",-" + utostr(i) + ")\n"; - R1 = v1.ashr(i); - apresult = R1.toString(10,false); - } + APInt hiMask(32, -1ULL); + hiMask.sextOrTrunc(v1.getBitWidth()); + hiMask = hiMask.shl(v1.getBitWidth()-i); + cmd = "bitor(" + cmd + "," + hiMask.toString(10,false) + ")"; + } + cmd += "\n"; + R1 = v1.ashr(i); + apresult = R1.toString(10,false); gpresult = getResult(cmd); if (gpresult != apresult) { - if (v1.isNegative()) - print(v1, true); - else - print(v1, false); - printf(" s>> %d = %s (not %s)\n", i, gpresult.c_str(), apresult.c_str()); + print(v1, false); + printf(" s>> %d = %s (not %s) cmd=%s\n", i, gpresult.c_str(), apresult.c_str(), cmd.c_str()); fflush(stdout); } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits