github.com/qiaogw/arrgo@v0.0.8/internal/boolOps_amd64.s (about) 1 //+build !noasm,!appengine 2 3 #define NOSPLIT 7 4 5 TEXT ·findBool(SB), NOSPLIT, $0 6 MOVQ vals_base+0(FP), R8 7 MOVQ vals_len+8(FP), SI 8 MOVB find+24(FP), R10 9 PXOR X0,X0 10 11 CMPQ SI, $0 12 JE failed 13 14 CMPB R10, $0 15 JE loop 16 17 MOVQ R10, X0 18 PUNPCKLBW X0, X0 19 PSHUFLW $0, X0, X0 20 PUNPCKLQDQ X0, X0 21 loop: 22 MOVOU X0, X1 23 PCMPEQB (R8), X1 24 PMOVMSKB X1, R9 25 BSFL R9,R9 26 JNZ fnd 27 ADDQ $16, R8 28 SUBQ $16, SI 29 JG loop 30 JMP failed 31 fnd: 32 CMPQ R9, SI 33 JG failed 34 MOVB $1, flg+32(FP) 35 RET 36 failed: 37 MOVB $0, flg+32(FP) 38 RET 39 40