Advertisement
Guest User

Untitled

a guest
Aug 9th, 2017
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. // latency accumulator -- a chain of ops with data dependency between each two ops
  2. // to break the dependency set COISSUE
  3.  
  4. #if __aarch64__ == 0
  5.     #error wrong target arch
  6. #endif
  7.  
  8. #include <stddef.h>
  9.  
  10. int main(int, char**) {
  11.     size_t const rep = size_t(5e8);
  12.  
  13.     for (size_t i = 0; i < rep; ++i) {
  14.  
  15. #if COISSUE
  16.         asm volatile (
  17.             "tbl v17.16b, {v1.16b},  v0.16b\n\t"
  18.             "tbl v18.16b, {v2.16b},  v0.16b\n\t"
  19.             "tbl v19.16b, {v3.16b},  v0.16b\n\t"
  20.             "tbl v20.16b, {v4.16b},  v0.16b\n\t"
  21.             "tbl v21.16b, {v5.16b},  v0.16b\n\t"
  22.             "tbl v22.16b, {v6.16b},  v0.16b\n\t"
  23.             "tbl v23.16b, {v7.16b},  v0.16b\n\t"
  24.             "tbl v24.16b, {v8.16b},  v0.16b\n\t"
  25.             "tbl v25.16b, {v9.16b},  v0.16b\n\t"
  26.             "tbl v26.16b, {v10.16b}, v0.16b\n\t"
  27.             "tbl v27.16b, {v11.16b}, v0.16b\n\t"
  28.             "tbl v28.16b, {v12.16b}, v0.16b\n\t"
  29.             "tbl v29.16b, {v13.16b}, v0.16b\n\t"
  30.             "tbl v30.16b, {v14.16b}, v0.16b\n\t"
  31.             "tbl v31.16b, {v15.16b}, v0.16b\n\t"
  32.             "tbl v0.16b,  {v16.16b}, v0.16b"
  33.             : : : "memory");
  34.  
  35. #else
  36.         asm volatile (
  37.             "tbl v2.16b,  {v1.16b},  v0.16b\n\t"
  38.             "tbl v3.16b,  {v2.16b},  v0.16b\n\t"
  39.             "tbl v4.16b,  {v3.16b},  v0.16b\n\t"
  40.             "tbl v5.16b,  {v4.16b},  v0.16b\n\t"
  41.             "tbl v6.16b,  {v5.16b},  v0.16b\n\t"
  42.             "tbl v7.16b,  {v6.16b},  v0.16b\n\t"
  43.             "tbl v8.16b,  {v7.16b},  v0.16b\n\t"
  44.             "tbl v9.16b,  {v8.16b},  v0.16b\n\t"
  45.             "tbl v10.16b, {v9.16b},  v0.16b\n\t"
  46.             "tbl v11.16b, {v10.16b}, v0.16b\n\t"
  47.             "tbl v12.16b, {v11.16b}, v0.16b\n\t"
  48.             "tbl v13.16b, {v12.16b}, v0.16b\n\t"
  49.             "tbl v14.16b, {v13.16b}, v0.16b\n\t"
  50.             "tbl v15.16b, {v14.16b}, v0.16b\n\t"
  51.             "tbl v16.16b, {v15.16b}, v0.16b\n\t"
  52.             "tbl v17.16b, {v16.16b}, v0.16b"
  53.             : : : "memory");
  54.  
  55. #endif
  56.     }
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement