<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      通過浪費時間獲得快樂不是對時間的浪費
      Penilum meum pullo sententia Latin a est

      最強八皇后程序:位操作、SIMD、多線程、匯編

      #include <stdio.h>
      #include <stdint.h>
      #include <stdlib.h>
      #include <mmintrin.h>
      #include <pthread.h>
      #include <algorithm>
      
      /*
      0 Q......Q
      3 ..Q.....
      4 ...Q....
      5 ..Q.....
      7 Q......Q
      用+y和-y判斷斜線
      x 0..7 0..7位
      x+y 0..14 8..22位
      x-y -7..7 0..14 23..37位
      */
      
      typedef unsigned char byte;
      byte __attribute__((aligned(64))) _b[8][8][8];
      uint64_t  _b2[8][8];
      int cnt[8];
      pthread_t tid[8];
      
      void pr (uint64_t n) {
        // 1<<n是第n位,共n+1位
        for (uint64_t i = 1ull << 37; i; i >>= 1) putchar(n & i ? '1' : '.');
        puts(""); getchar();
      }
      
      void search (int i, int cy) { // idx, current_y
        byte (&b)[8][8] = _b[i];
        for (int x = 0; x < 8; x++) {
          byte (&c)[8] = b[cy];
          c[0] = x; c[1] = x + cy; c[2] = x - cy;
          // +7轉非負,+23擺位。注意ull后綴!
          _b2[i][cy] = (1 << x) | (1 << (x + cy + 8)) | (1ull << (x - cy + 7 + 23));
          bool ok = true;
          for (int y = 0; y < cy; y++) {
            const uint64_t r = uint64_t(_mm_cmpeq_pi8(*(__m64*)c, *(__m64*)b[y]));
            _mm_empty();
            int f[] = {
              r & 0xFFFFFF ? 1 : 0, // 匯編里查找pcmpeqb
              _b2[i][cy] & _b2[i][y] ? 1 : 0,
              c[0] == b[y][0] | c[1] == b[y][1] | c[2] == b[y][2],
              c[0] == b[y][0] || c[1] == b[y][1] || c[2] == b[y][2]
            };
            if (!std::equal(f+1, f+4, f)) exit(0);
            if (f[0]) { ok = false; break; }
          }
          if (!ok) continue;
          if (cy == 7) ++cnt[i];
          else search(i, cy + 1);
        }
      }
      
      void* tfn (void* arg) {
        int x = int(long(arg)), cy = 0;
        _b[x][0][0] = _b[x][0][1] = _b[x][0][2] = x;
        _b2[x][cy] = (1 << x) | (1 << (x + cy + 8)) | (1ull << (x - cy + 7 + 23));
        search(x, 1); return 0;
      }
      
      int main () {
        enum { N = 8 };
        for (int i = 0; i < N; i++) pthread_create(tid+i, NULL, tfn, (void*)long(i));
        for (int i = 0; i < N; i++) pthread_join(tid[i], NULL);
        int n = 0;
        for (int i = 0; i < N; i++) printf("%d\n", n += cnt[i]);
      }

      和0xFFFFFF對應的是andl $16777215, %eax,匯編不用十六進制?!

      movq  %rdx, -48(%rbp)
      movq  %rax, -56(%rbp)
      movq  -56(%rbp), %xmm0
      movq  -48(%rbp), %xmm1
      pcmpeqb %xmm1, %xmm0
      movq  %xmm0, %rax
      movq  %rax, -40(%rbp)
      emms
      nop
      movq  -40(%rbp), %rax
      andl  $16777215, %eax
      testq %rax, %rax

      太長了,再來個t.cpp看看|和||:

      int main (int n, char**) { return (n | 123) ^ (n || 456); } -O0 出不來456
      
      orl     $123, %eax
      xorl    $1, %eax
       
      int f () { return 456; }
      int main (int n, char**) { return (n | 123) ^ (n || f()); }
       
      call  _Z1fv
      testl %eax, %eax
      je  .L5
      .L4:
      movl  $1, %eax
      jmp .L6
      .L5:
      movl  $0, %eax
      .L6:
       
      _Z1fv:
      pushq %rbp
      movq  %rsp, %rbp
      movl  $456, %eax
      popq  %rbp
      ret

       

      posted @ 2025-10-19 15:57  華容道專家  閱讀(4)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品 亚洲一区二区三区| 亚洲色一区二区三区四区| 亚洲男女羞羞无遮挡久久丫| 国产精品99久久久久久www| 亚洲男人AV天堂午夜在| 欧美乱大交xxxxx疯狂俱乐部| 日韩一区二区三区精彩视频| 国产又色又爽又黄的在线观看| 久久久久成人精品| 潮喷无码正在播放| 亚洲成人av高清在线| 中年国产丰满熟女乱子正在播放| 人妻出轨av中文字幕| 亚洲一区二区三区在线观看精品中文| 亚洲性av网站| 国产激情一区二区三区四区| 国产精品午夜av福利| 国精品无码一区二区三区在线| 精品人妻av中文字幕乱| xxxx丰满少妇高潮| 影音先锋亚洲成aⅴ人在| 亚洲中文字幕精品第三区| 久章草在线毛片视频播放| 国产男女猛烈无遮挡免费视频网站| 亚洲国产综合精品2020| 亚洲精品成人福利网站| а天堂中文最新一区二区三区| 久久一亚色院精品全部免费| 精品国产迷系列在线观看| 亚洲国产天堂一区二区三区| 激情综合色综合久久丁香| 日本中文字幕有码在线视频| 精品国产精品三级精品av网址| 玩弄美艳馊子高潮无码| 伊人色综合一区二区三区影院视频| 金溪县| 少妇人妻挤奶水中文视频毛片| 国产欧美日韩亚洲一区二区三区| 墨脱县| 成人福利一区二区视频在线 | 一边吃奶一边做动态图|