ORExpand.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "ORExpand.hpp"
  2. #ifdef TEST_OREXPAND
  3. void test_ORExpand()
  4. {
  5. size_t block_size = 48;
  6. uint32_t N = 16;
  7. uint32_t dest_specified[] = {0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14};
  8. size_t dest_specified_len = sizeof(dest_specified)/sizeof(uint32_t);
  9. unsigned char *buf = new unsigned char[N*block_size];
  10. uint32_t *dest = new uint32_t[N];
  11. for (size_t i=0;i<dest_specified_len;++i) {
  12. dest[i] = dest_specified[i];
  13. }
  14. for (size_t i=dest_specified_len;i<N;++i) {
  15. dest[i] = 0xffffffff;
  16. }
  17. for (size_t i=0;i<N;++i) {
  18. for (size_t j=0;j<block_size;j+=2) {
  19. buf[i*block_size+j] = (unsigned char)i;
  20. buf[i*block_size+j+1] = (unsigned char)j/2;
  21. }
  22. }
  23. ORExpand<OSWAP_16X>(buf, dest, block_size, N);
  24. for(size_t i=0;i<N;++i) {
  25. printf("%2d ", i);
  26. if (dest[i] == 0xffffffff) {
  27. printf("PD ");
  28. } else {
  29. printf("%2d ", dest[i]);
  30. }
  31. for (size_t j=0;j<block_size;++j) {
  32. printf("%02x", buf[i*block_size+j]);
  33. }
  34. printf("\n");
  35. }
  36. delete[] buf;
  37. delete[] dest;
  38. }
  39. #endif