Last active
November 7, 2023 04:50
-
-
Save jeffreywolberg/4ec61c9e3f37e2548a0396f1cf390852 to your computer and use it in GitHub Desktop.
Vectorized and Non-vectorized dot products using intel AVX intrinsics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <stdint.h> | |
| #include <stdlib.h> | |
| #include <immintrin.h> | |
| #include <smmintrin.h> | |
| #include <x86intrin.h> | |
| uint64_t dotbytes_naive(uint8_t* array1, uint8_t* array2, size_t size) { | |
| uint64_t start, end; | |
| start = _rdtsc(); | |
| uint64_t result = 0; | |
| for (size_t i = 0; i < size; i++) { | |
| result += array1[i]*array2[i]; | |
| } | |
| end = _rdtsc(); | |
| printf("Naive dot product took %d cycles\n", end - start); | |
| return result; | |
| } | |
| uint32_t dotbytes_vec2(uint8_t* array, uint8_t* array2, size_t size) { | |
| uint64_t start, end; | |
| start = _rdtsc(); | |
| int sum = 0; | |
| const __m128i packed_16_low_8_mask = _mm_set1_epi16(0x00ff); // 128 bit int = {00 ff 00 ff 00 ff 00 ff 00 ff 00 ff 00 ff 0f 0f} | |
| const __m128i zero128 = _mm_setzero_si128(); | |
| size_t i=0; | |
| for (; i< size / 16; i++) { | |
| size_t offset = i * 16; | |
| const __m128i vec = _mm_loadu_si128((__m128i*)(array + offset)); | |
| // vec = {num0, num1, ..., num15} where each num* is 8 bits | |
| const __m128i vec0 = vec; | |
| // tmp0 = {|00000000,num1|00000000,num3|00000000,num5|00000000,num7|00000000,num9|00000000,num11|00000000,num13|00000000,num15|} where each |...| is 16 bits and each num* is 8 bits | |
| const __m128i tmp0 = _mm_and_si128(packed_16_low_8_mask, vec0); | |
| // vec1 = tmp1 = {|00000000,num0|00000000,num2|00000000,num4|00000000,num6|00000000,num8|00000000,num10|00000000,num12|00000000,num14|} where each |...| is 16 bits and each num* is 8 bits | |
| const __m128i vec1 = _mm_srli_epi16(vec, 1 * 8); | |
| const __m128i tmp1 = vec1; | |
| // vecB = {num0, num1, ..., num15} where each num* is 8 bits | |
| const __m128i vecB = _mm_loadu_si128((__m128i*)(array2 + offset)); | |
| const __m128i vecB0 = vecB; | |
| // tmpB0 = {|00000000,num1|00000000,num3|00000000,num5|00000000,num7|00000000,num9|00000000,num11|00000000,num13|00000000,num15|} where each |...| is 16 bits and each num* is 8 bits | |
| const __m128i tmpB0 = _mm_and_si128(packed_16_low_8_mask, vecB0); | |
| // vecB1 = tmpB1 = {|00000000,num0|00000000,num2|00000000,num4|00000000,num6|00000000,num8|00000000,num10|00000000,num12|00000000,num14|} where each |...| is 16 bits and each num* is 8 bits | |
| const __m128i vecB1 = _mm_srli_epi16(vecB, 1 * 8); | |
| const __m128i tmpB1 = vecB1; | |
| // dot0 = {|num1 * numB_1||num3 * numB_3||num5 * numB_5||num7 * numB_7||num9 * numB_9||num11 * numB_11||num13 * numB_13||num15 * numB_15|}, where each |...| is 16 bits | |
| const __m128i dot0 = _mm_mullo_epi16(tmp0, tmpB0); | |
| // dot1 = {|num0 * numB_0||num2 * numB_2||num4 * numB_4||num6 * numB_6||num8 * numB_8||num10 * numB_10||num12 * numB_12||num14 * numB_14|}, where each |...| is 16 bits | |
| const __m128i dot1 = _mm_mullo_epi16(tmp1, tmpB1); | |
| // max num bits to store the result of accum(dot0) and accum(dot1) is log(16 * 256*256) = log(16) + log(256) + log(256) = 20 | |
| // // FIXME: these horizontal adds add numbers of 16 bits each, which means overflow still needs to be implemented (adding between two 16-bit numbers is 17 bits). | |
| // // tmp_sum = {|p1+p3||p5+p7||p9+p11||p13+15||p0+p2||p4+p6||p8+p10||p12+p14|} where each |...| is 16 bits and p* = num* x numB_* | |
| // const __m128i tmp_sum = _mm_hadd_epi16(dot0, dot1); | |
| // // tmp_sum2 = {|p1+p3+p5+p7||p9+p11+p13+15|p0+p2+p4+p6||p8+p10+p12+p14||0|0|0|0|} where each |...| is 16 bits | |
| // const __m128i tmp_sum2 = _mm_hadd_epi16(tmp_sum, zero128); | |
| // // tmp_sum3 = {|p1+p3+p5+p7+p9+p11+p13+15|p0+p2+p4+p6+p8+p10+p12+p14||0|0|0|0|0|0|} where each |...| is 16 bits | |
| // const __m128i tmp_sum3 = _mm_hadd_epi16(tmp_sum2, zero128); | |
| // // tmp_sum4 = {|p1+p3+p5+p7+p9+p11+p13+15+p0+p2+p4+p6+p8+p10+p12+p14|0|0|0|0|0|0|0|} where each |...| is 16 bits | |
| // const __m128i tmp_sum4 = _mm_hadd_epi16(tmp_sum3, zero128); | |
| // sum += _mm_extract_epi16(tmp_sum4, 0); | |
| // Extend the dotted entries to 32 bits and do the adds in 32 bit space. Ensure to NOT sign-extend. | |
| // dot0_low_packed32 = {|num1 * numB_1||num3 * numB_3||num5 * numB_5||num7 * numB_7|} where each |...| is 32 bits | |
| const __m128i dot0_low_packed32 = _mm_cvtepu16_epi32(dot0); | |
| // high64_dot0 = {|num9 * numB_9||num11 * numB_11||num13 * numB_13||num15 * numB_15|0|0|0|0|}, where each |...| is 16 bits | |
| const __m128i high64_dot0 = _mm_unpackhi_epi64(dot0, zero128); | |
| // dot0_high_packed32 = {|num9 * numB_9||num11 * numB_11||num13 * numB_13||num15 * numB_15|} where each |...| is 32 bits | |
| const __m128i dot0_high_packed32 = _mm_cvtepu16_epi32(high64_dot0); | |
| // dot0_sum = {|p1+p3|p5+p7||p9+p11|p13+p15|} where each |...| is 32 bits and p* = num* x numB_* | |
| __m128i dot0_sum = _mm_hadd_epi32(dot0_low_packed32, dot0_high_packed32); | |
| // dot0_sum = {|p1+p3+p5+p7||p9+p11+p13+p15||0|0|} where each |...| is 32 bits | |
| dot0_sum = _mm_hadd_epi32(dot0_sum, zero128); | |
| // dot0_sum = {|p1+p3+p5+p7+p9+p11+p13+p15|0|0|0|} where each |...| is 32 bits | |
| dot0_sum = _mm_hadd_epi32(dot0_sum, zero128); | |
| sum += _mm_extract_epi32(dot0_sum, 0); | |
| // Extend the dotted entries to 32 bits and do the adds in 32 bit space. Ensure to NOT sign-extend. | |
| // dot1_low_packed32 = {|num0 * numB_0||num2 * numB_2||num4 * numB_4||num6 * numB_6|} where each |...| is 32 bits | |
| const __m128i dot1_low_packed32 = _mm_cvtepu16_epi32(dot1); | |
| // high64_dot1 = {|num8 * numB_8||num10 * numB_10||num12 * numB_12||num14 * numB_14|0|0|0|0|}, where each |...| is 16 bits | |
| const __m128i high64_dot1 = _mm_unpackhi_epi64(dot1, zero128); | |
| // dot1_high_packed32 = {|num8 * numB_8||num10 * numB_10||num12 * numB_12||num14 * numB_14|} where each |...| is 32 bits | |
| const __m128i dot1_high_packed32 = _mm_cvtepu16_epi32(high64_dot1); | |
| // dot0_sum = {|p0+p2|p4+p6||p8+p10|p12+p14|} where each |...| is 32 bits and p* = num* x numB_* | |
| __m128i dot1_sum = _mm_hadd_epi32(dot1_low_packed32, dot1_high_packed32); | |
| // dot0_sum = {|p0+p2+p4+p6||p8+p10+p12+p14||0|0|} where each |...| is 32 bits | |
| dot1_sum = _mm_hadd_epi32(dot1_sum, zero128); | |
| // dot0_sum = {|p0+p2+p4+p6+p8+p10+p12+p14|0|0|0|} where each |...| is 32 bits | |
| dot1_sum = _mm_hadd_epi32(dot1_sum, zero128); | |
| sum += _mm_extract_epi32(dot1_sum, 0); | |
| } | |
| // advance array to its remaining [0,15] entries | |
| array += i << 4; | |
| array2 += i << 4; | |
| for (size_t r = 0; r < size % 16; r++) { | |
| sum += array[r]*array2[r]; | |
| } | |
| end = _rdtsc(); | |
| printf("Vectorized2 dot product took %d cycles \n", end - start); | |
| return sum; | |
| } | |
| uint32_t dotbytes_vec(uint8_t* array, uint8_t* array2, size_t size) { | |
| // Your implementation of sumbytes_vec goes here | |
| // (The content of the function is missing in the provided code) | |
| uint64_t start, end; | |
| start = _rdtsc(); | |
| const __m128i last_byte_mask = _mm_set1_epi32(0x000000ff); | |
| uint32_t residue = 0; | |
| __m128i result = _mm_setzero_si128(); | |
| size_t i = 0; | |
| for (; i < size >> 4; i++) { | |
| size_t offset = i << 4; | |
| const __m128i vec = _mm_loadu_si128((__m128i*)(array + offset)); | |
| const __m128i vec0 = vec; | |
| const __m128i tmp0 = _mm_and_si128(last_byte_mask, vec0); | |
| const __m128i vec1 = _mm_srli_epi32(vec, 1 * 8); | |
| const __m128i tmp1 = _mm_and_si128(last_byte_mask, vec1); | |
| const __m128i vec2 = _mm_srli_epi32(vec, 2 * 8); | |
| const __m128i tmp2 = _mm_and_si128(last_byte_mask, vec2); | |
| const __m128i vec3 = _mm_srli_epi32(vec, 3 * 8); | |
| const __m128i tmp3 = vec3; | |
| const __m128i vecB = _mm_loadu_si128((__m128i*)(array2 + offset)); | |
| const __m128i vecB0 = vecB; | |
| const __m128i tmpB0 = _mm_and_si128(last_byte_mask, vecB0); | |
| const __m128i vecB1 = _mm_srli_epi32(vecB, 1 * 8); | |
| const __m128i tmpB1 = _mm_and_si128(last_byte_mask, vecB1); | |
| const __m128i vecB2 = _mm_srli_epi32(vecB, 2 * 8); | |
| const __m128i tmpB2 = _mm_and_si128(last_byte_mask, vecB2); | |
| const __m128i vecB3 = _mm_srli_epi32(vecB, 3 * 8); | |
| const __m128i tmpB3 = vecB3; | |
| const __m128i dot0 = _mm_mullo_epi32(tmp0, tmpB0); | |
| const __m128i dot1 = _mm_mullo_epi32(tmp1, tmpB1); | |
| const __m128i dot2 = _mm_mullo_epi32(tmp2, tmpB2); | |
| const __m128i dot3 = _mm_mullo_epi32(tmp3, tmpB3); | |
| result = _mm_add_epi32(result, dot0); | |
| result = _mm_add_epi32(result, dot1); | |
| result = _mm_add_epi32(result, dot2); | |
| result = _mm_add_epi32(result, dot3); | |
| } | |
| // advance array to its remaining [0,15] entries | |
| array += i << 4; | |
| array2 += i << 4; | |
| for (size_t r = 0; r < size % 16; r++) { | |
| residue += array[r]*array2[r]; | |
| } | |
| end = _rdtsc(); | |
| printf("Vectorized dot product took %d cycles \n", end - start); | |
| return (uint32_t)(_mm_extract_epi32(result, 0)) + | |
| (uint32_t)(_mm_extract_epi32(result, 1)) + | |
| (uint32_t)(_mm_extract_epi32(result, 2)) + | |
| (uint32_t)(_mm_extract_epi32(result, 3)) + residue; | |
| } | |
| uint32_t sumbytes_naive(uint8_t* array, size_t size) { | |
| uint32_t result = 0; | |
| for (size_t i = 0; i < size; i++) { | |
| result += (array[i]); | |
| printf("iteration %d, result = %d\n", i, result); | |
| } | |
| return result; | |
| } | |
| uint32_t sumbytes_vec(uint8_t* array, size_t size) { | |
| // Your implementation of sumbytes_vec goes here | |
| // (The content of the function is missing in the provided code) | |
| const __m128i last_byte_mask = _mm_set1_epi32(0x000000ff); | |
| __m128i result = _mm_setzero_si128(); | |
| for (size_t i = 0; i < size; i += 16) { | |
| const __m128i vec = _mm_loadu_si128((__m128i*)(array + i)); | |
| const __m128i vec0 = vec; | |
| const __m128i tmp0 = _mm_and_si128(last_byte_mask, vec0); | |
| const __m128i vec1 = _mm_srli_epi32(vec, 1 * 8); | |
| const __m128i tmp1 = _mm_and_si128(last_byte_mask, vec1); | |
| const __m128i vec2 = _mm_srli_epi32(vec, 2 * 8); | |
| const __m128i tmp2 = _mm_and_si128(last_byte_mask, vec2); | |
| const __m128i vec3 = _mm_srli_epi32(vec, 3 * 8); | |
| const __m128i tmp3 = vec3; | |
| result = _mm_add_epi32(result, tmp0); | |
| result = _mm_add_epi32(result, tmp1); | |
| result = _mm_add_epi32(result, tmp2); | |
| result = _mm_add_epi32(result, tmp3); | |
| } | |
| return (uint32_t)(_mm_extract_epi32(result, 0)) + | |
| (uint32_t)(_mm_extract_epi32(result, 1)) + | |
| (uint32_t)(_mm_extract_epi32(result, 2)) + | |
| (uint32_t)(_mm_extract_epi32(result, 3)); | |
| } | |
| int main(int argc, char *argv[]) { | |
| if (argc != 3) { | |
| printf("Usage: ./vectorDot length_of_vector random_seed \n"); | |
| return 0; | |
| } | |
| srand(atoi(argv[2])); | |
| int length = atoi(argv[1]); | |
| printf("The length of test vectors are %d\n", length); | |
| uint8_t *v1 = malloc(sizeof(uint8_t)*length); | |
| uint8_t *v2 = malloc(sizeof(uint8_t)*length); | |
| for (int i = 0; i < length; i++) { | |
| v1[i] = rand()%256; | |
| v2[i] = rand()%256; | |
| // v1[i] = rand()%32; | |
| // v2[i] = rand()%32; | |
| // v1[i] = 255; | |
| // v2[i] = 255; | |
| } | |
| uint64_t result = dotbytes_naive(v1, v2, length); | |
| printf("Naive dot product of vectors = %d\n", result); | |
| result = dotbytes_vec(v1, v2, length); | |
| printf("Vectorized dot product of vectors = %d\n", result); | |
| result = dotbytes_vec2(v1, v2, length); | |
| printf("Vectorized2 dot product of vectors = %d\n", result); | |
| free(v1); | |
| free(v2); | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| vectorDotJeff: file format elf64-x86-64 | |
| Disassembly of section .init: | |
| 0000000000001000 <_init>: | |
| 1000: 48 83 ec 08 sub $0x8,%rsp | |
| 1004: 48 8b 05 dd 3f 00 00 mov 0x3fdd(%rip),%rax # 4fe8 <__gmon_start__> | |
| 100b: 48 85 c0 test %rax,%rax | |
| 100e: 74 02 je 1012 <_init+0x12> | |
| 1010: ff d0 callq *%rax | |
| 1012: 48 83 c4 08 add $0x8,%rsp | |
| 1016: c3 retq | |
| Disassembly of section .plt: | |
| 0000000000001020 <.plt>: | |
| 1020: ff 35 e2 3f 00 00 pushq 0x3fe2(%rip) # 5008 <_GLOBAL_OFFSET_TABLE_+0x8> | |
| 1026: ff 25 e4 3f 00 00 jmpq *0x3fe4(%rip) # 5010 <_GLOBAL_OFFSET_TABLE_+0x10> | |
| 102c: 0f 1f 40 00 nopl 0x0(%rax) | |
| 0000000000001030 <free@plt>: | |
| 1030: ff 25 e2 3f 00 00 jmpq *0x3fe2(%rip) # 5018 <free@GLIBC_2.2.5> | |
| 1036: 68 00 00 00 00 pushq $0x0 | |
| 103b: e9 e0 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001040 <puts@plt>: | |
| 1040: ff 25 da 3f 00 00 jmpq *0x3fda(%rip) # 5020 <puts@GLIBC_2.2.5> | |
| 1046: 68 01 00 00 00 pushq $0x1 | |
| 104b: e9 d0 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001050 <printf@plt>: | |
| 1050: ff 25 d2 3f 00 00 jmpq *0x3fd2(%rip) # 5028 <printf@GLIBC_2.2.5> | |
| 1056: 68 02 00 00 00 pushq $0x2 | |
| 105b: e9 c0 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001060 <srand@plt>: | |
| 1060: ff 25 ca 3f 00 00 jmpq *0x3fca(%rip) # 5030 <srand@GLIBC_2.2.5> | |
| 1066: 68 03 00 00 00 pushq $0x3 | |
| 106b: e9 b0 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001070 <malloc@plt>: | |
| 1070: ff 25 c2 3f 00 00 jmpq *0x3fc2(%rip) # 5038 <malloc@GLIBC_2.2.5> | |
| 1076: 68 04 00 00 00 pushq $0x4 | |
| 107b: e9 a0 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001080 <atoi@plt>: | |
| 1080: ff 25 ba 3f 00 00 jmpq *0x3fba(%rip) # 5040 <atoi@GLIBC_2.2.5> | |
| 1086: 68 05 00 00 00 pushq $0x5 | |
| 108b: e9 90 ff ff ff jmpq 1020 <.plt> | |
| 0000000000001090 <rand@plt>: | |
| 1090: ff 25 b2 3f 00 00 jmpq *0x3fb2(%rip) # 5048 <rand@GLIBC_2.2.5> | |
| 1096: 68 06 00 00 00 pushq $0x6 | |
| 109b: e9 80 ff ff ff jmpq 1020 <.plt> | |
| Disassembly of section .plt.got: | |
| 00000000000010a0 <__cxa_finalize@plt>: | |
| 10a0: ff 25 52 3f 00 00 jmpq *0x3f52(%rip) # 4ff8 <__cxa_finalize@GLIBC_2.2.5> | |
| 10a6: 66 90 xchg %ax,%ax | |
| Disassembly of section .text: | |
| 00000000000010b0 <_start>: | |
| 10b0: 31 ed xor %ebp,%ebp | |
| 10b2: 49 89 d1 mov %rdx,%r9 | |
| 10b5: 5e pop %rsi | |
| 10b6: 48 89 e2 mov %rsp,%rdx | |
| 10b9: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp | |
| 10bd: 50 push %rax | |
| 10be: 54 push %rsp | |
| 10bf: 4c 8d 05 fa 13 00 00 lea 0x13fa(%rip),%r8 # 24c0 <__libc_csu_fini> | |
| 10c6: 48 8d 0d 93 13 00 00 lea 0x1393(%rip),%rcx # 2460 <__libc_csu_init> | |
| 10cd: 48 8d 3d dc 11 00 00 lea 0x11dc(%rip),%rdi # 22b0 <main> | |
| 10d4: ff 15 06 3f 00 00 callq *0x3f06(%rip) # 4fe0 <__libc_start_main@GLIBC_2.2.5> | |
| 10da: f4 hlt | |
| 10db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) | |
| 00000000000010e0 <deregister_tm_clones>: | |
| 10e0: 48 8d 3d 79 3f 00 00 lea 0x3f79(%rip),%rdi # 5060 <__TMC_END__> | |
| 10e7: 48 8d 05 72 3f 00 00 lea 0x3f72(%rip),%rax # 5060 <__TMC_END__> | |
| 10ee: 48 39 f8 cmp %rdi,%rax | |
| 10f1: 74 15 je 1108 <deregister_tm_clones+0x28> | |
| 10f3: 48 8b 05 de 3e 00 00 mov 0x3ede(%rip),%rax # 4fd8 <_ITM_deregisterTMCloneTable> | |
| 10fa: 48 85 c0 test %rax,%rax | |
| 10fd: 74 09 je 1108 <deregister_tm_clones+0x28> | |
| 10ff: ff e0 jmpq *%rax | |
| 1101: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) | |
| 1108: c3 retq | |
| 1109: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) | |
| 0000000000001110 <register_tm_clones>: | |
| 1110: 48 8d 3d 49 3f 00 00 lea 0x3f49(%rip),%rdi # 5060 <__TMC_END__> | |
| 1117: 48 8d 35 42 3f 00 00 lea 0x3f42(%rip),%rsi # 5060 <__TMC_END__> | |
| 111e: 48 29 fe sub %rdi,%rsi | |
| 1121: 48 89 f0 mov %rsi,%rax | |
| 1124: 48 c1 ee 3f shr $0x3f,%rsi | |
| 1128: 48 c1 f8 03 sar $0x3,%rax | |
| 112c: 48 01 c6 add %rax,%rsi | |
| 112f: 48 d1 fe sar %rsi | |
| 1132: 74 14 je 1148 <register_tm_clones+0x38> | |
| 1134: 48 8b 05 b5 3e 00 00 mov 0x3eb5(%rip),%rax # 4ff0 <_ITM_registerTMCloneTable> | |
| 113b: 48 85 c0 test %rax,%rax | |
| 113e: 74 08 je 1148 <register_tm_clones+0x38> | |
| 1140: ff e0 jmpq *%rax | |
| 1142: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) | |
| 1148: c3 retq | |
| 1149: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) | |
| 0000000000001150 <__do_global_dtors_aux>: | |
| 1150: 80 3d 09 3f 00 00 00 cmpb $0x0,0x3f09(%rip) # 5060 <__TMC_END__> | |
| 1157: 75 2f jne 1188 <__do_global_dtors_aux+0x38> | |
| 1159: 55 push %rbp | |
| 115a: 48 83 3d 96 3e 00 00 cmpq $0x0,0x3e96(%rip) # 4ff8 <__cxa_finalize@GLIBC_2.2.5> | |
| 1161: 00 | |
| 1162: 48 89 e5 mov %rsp,%rbp | |
| 1165: 74 0c je 1173 <__do_global_dtors_aux+0x23> | |
| 1167: 48 8b 3d ea 3e 00 00 mov 0x3eea(%rip),%rdi # 5058 <__dso_handle> | |
| 116e: e8 2d ff ff ff callq 10a0 <__cxa_finalize@plt> | |
| 1173: e8 68 ff ff ff callq 10e0 <deregister_tm_clones> | |
| 1178: c6 05 e1 3e 00 00 01 movb $0x1,0x3ee1(%rip) # 5060 <__TMC_END__> | |
| 117f: 5d pop %rbp | |
| 1180: c3 retq | |
| 1181: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) | |
| 1188: c3 retq | |
| 1189: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) | |
| 0000000000001190 <frame_dummy>: | |
| 1190: e9 7b ff ff ff jmpq 1110 <register_tm_clones> | |
| 0000000000001195 <dotbytes_naive>: | |
| 1195: 55 push %rbp | |
| 1196: 48 89 e5 mov %rsp,%rbp | |
| 1199: 48 83 ec 40 sub $0x40,%rsp | |
| 119d: 48 89 7d d8 mov %rdi,-0x28(%rbp) | |
| 11a1: 48 89 75 d0 mov %rsi,-0x30(%rbp) | |
| 11a5: 48 89 55 c8 mov %rdx,-0x38(%rbp) | |
| 11a9: 0f 31 rdtsc | |
| 11ab: 48 c1 e2 20 shl $0x20,%rdx | |
| 11af: 48 09 d0 or %rdx,%rax | |
| 11b2: 48 89 45 e8 mov %rax,-0x18(%rbp) | |
| 11b6: 48 c7 45 f8 00 00 00 movq $0x0,-0x8(%rbp) | |
| 11bd: 00 | |
| 11be: 48 c7 45 f0 00 00 00 movq $0x0,-0x10(%rbp) | |
| 11c5: 00 | |
| 11c6: eb 30 jmp 11f8 <dotbytes_naive+0x63> | |
| 11c8: 48 8b 55 d8 mov -0x28(%rbp),%rdx | |
| 11cc: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 11d0: 48 01 d0 add %rdx,%rax | |
| 11d3: 0f b6 00 movzbl (%rax),%eax | |
| 11d6: 0f b6 d0 movzbl %al,%edx | |
| 11d9: 48 8b 4d d0 mov -0x30(%rbp),%rcx | |
| 11dd: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 11e1: 48 01 c8 add %rcx,%rax | |
| 11e4: 0f b6 00 movzbl (%rax),%eax | |
| 11e7: 0f b6 c0 movzbl %al,%eax | |
| 11ea: 0f af c2 imul %edx,%eax | |
| 11ed: 48 98 cltq | |
| 11ef: 48 01 45 f8 add %rax,-0x8(%rbp) | |
| 11f3: 48 83 45 f0 01 addq $0x1,-0x10(%rbp) | |
| 11f8: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 11fc: 48 3b 45 c8 cmp -0x38(%rbp),%rax | |
| 1200: 72 c6 jb 11c8 <dotbytes_naive+0x33> | |
| 1202: 0f 31 rdtsc | |
| 1204: 48 c1 e2 20 shl $0x20,%rdx | |
| 1208: 48 09 d0 or %rdx,%rax | |
| 120b: 48 89 45 e0 mov %rax,-0x20(%rbp) | |
| 120f: 48 8b 45 e0 mov -0x20(%rbp),%rax | |
| 1213: 48 2b 45 e8 sub -0x18(%rbp),%rax | |
| 1217: 48 89 c6 mov %rax,%rsi | |
| 121a: 48 8d 3d e7 1d 00 00 lea 0x1de7(%rip),%rdi # 3008 <_IO_stdin_used+0x8> | |
| 1221: b8 00 00 00 00 mov $0x0,%eax | |
| 1226: e8 25 fe ff ff callq 1050 <printf@plt> | |
| 122b: 48 8b 45 f8 mov -0x8(%rbp),%rax | |
| 122f: c9 leaveq | |
| 1230: c3 retq | |
| 0000000000001231 <dotbytes_vec2>: | |
| 1231: 55 push %rbp | |
| 1232: 48 89 e5 mov %rsp,%rbp | |
| 1235: 48 81 ec f0 03 00 00 sub $0x3f0,%rsp | |
| 123c: 48 89 bd 28 fc ff ff mov %rdi,-0x3d8(%rbp) | |
| 1243: 48 89 b5 20 fc ff ff mov %rsi,-0x3e0(%rbp) | |
| 124a: 48 89 95 18 fc ff ff mov %rdx,-0x3e8(%rbp) | |
| 1251: 0f 31 rdtsc | |
| 1253: 48 c1 e2 20 shl $0x20,%rdx | |
| 1257: 48 09 d0 or %rdx,%rax | |
| 125a: 48 89 45 e0 mov %rax,-0x20(%rbp) | |
| 125e: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) | |
| 1265: 66 c7 85 6e fe ff ff movw $0xff,-0x192(%rbp) | |
| 126c: ff 00 | |
| 126e: 0f bf 85 6e fe ff ff movswl -0x192(%rbp),%eax | |
| 1275: 0f bf 95 6e fe ff ff movswl -0x192(%rbp),%edx | |
| 127c: 0f bf 8d 6e fe ff ff movswl -0x192(%rbp),%ecx | |
| 1283: 0f bf b5 6e fe ff ff movswl -0x192(%rbp),%esi | |
| 128a: 0f bf bd 6e fe ff ff movswl -0x192(%rbp),%edi | |
| 1291: 44 0f bf 85 6e fe ff movswl -0x192(%rbp),%r8d | |
| 1298: ff | |
| 1299: 44 0f bf 8d 6e fe ff movswl -0x192(%rbp),%r9d | |
| 12a0: ff | |
| 12a1: 44 0f bf 95 6e fe ff movswl -0x192(%rbp),%r10d | |
| 12a8: ff | |
| 12a9: 66 44 89 95 6c fe ff mov %r10w,-0x194(%rbp) | |
| 12b0: ff | |
| 12b1: 66 44 89 8d 6a fe ff mov %r9w,-0x196(%rbp) | |
| 12b8: ff | |
| 12b9: 66 44 89 85 68 fe ff mov %r8w,-0x198(%rbp) | |
| 12c0: ff | |
| 12c1: 66 89 bd 66 fe ff ff mov %di,-0x19a(%rbp) | |
| 12c8: 66 89 b5 64 fe ff ff mov %si,-0x19c(%rbp) | |
| 12cf: 66 89 8d 62 fe ff ff mov %cx,-0x19e(%rbp) | |
| 12d6: 66 89 95 60 fe ff ff mov %dx,-0x1a0(%rbp) | |
| 12dd: 66 89 85 5e fe ff ff mov %ax,-0x1a2(%rbp) | |
| 12e4: 0f b7 85 5e fe ff ff movzwl -0x1a2(%rbp),%eax | |
| 12eb: c5 f9 6e c0 vmovd %eax,%xmm0 | |
| 12ef: 0f b7 85 60 fe ff ff movzwl -0x1a0(%rbp),%eax | |
| 12f6: c5 f9 c4 c0 01 vpinsrw $0x1,%eax,%xmm0,%xmm0 | |
| 12fb: c5 f9 6f c8 vmovdqa %xmm0,%xmm1 | |
| 12ff: 0f b7 85 62 fe ff ff movzwl -0x19e(%rbp),%eax | |
| 1306: c5 f9 6e c0 vmovd %eax,%xmm0 | |
| 130a: 0f b7 85 64 fe ff ff movzwl -0x19c(%rbp),%eax | |
| 1311: c5 f9 c4 c0 01 vpinsrw $0x1,%eax,%xmm0,%xmm0 | |
| 1316: c5 f9 6f e0 vmovdqa %xmm0,%xmm4 | |
| 131a: 0f b7 85 66 fe ff ff movzwl -0x19a(%rbp),%eax | |
| 1321: c5 f9 6e c0 vmovd %eax,%xmm0 | |
| 1325: 0f b7 85 68 fe ff ff movzwl -0x198(%rbp),%eax | |
| 132c: c5 f9 c4 c0 01 vpinsrw $0x1,%eax,%xmm0,%xmm0 | |
| 1331: c5 f9 6f d0 vmovdqa %xmm0,%xmm2 | |
| 1335: 0f b7 85 6a fe ff ff movzwl -0x196(%rbp),%eax | |
| 133c: c5 f9 6e c0 vmovd %eax,%xmm0 | |
| 1340: 0f b7 85 6c fe ff ff movzwl -0x194(%rbp),%eax | |
| 1347: c5 f9 c4 c0 01 vpinsrw $0x1,%eax,%xmm0,%xmm0 | |
| 134c: c5 f9 6f d8 vmovdqa %xmm0,%xmm3 | |
| 1350: c5 f1 62 c4 vpunpckldq %xmm4,%xmm1,%xmm0 | |
| 1354: c5 f9 6f c8 vmovdqa %xmm0,%xmm1 | |
| 1358: c5 e9 62 c3 vpunpckldq %xmm3,%xmm2,%xmm0 | |
| 135c: c5 f1 6c c0 vpunpcklqdq %xmm0,%xmm1,%xmm0 | |
| 1360: 90 nop | |
| 1361: c5 f9 7f 45 d0 vmovdqa %xmm0,-0x30(%rbp) | |
| 1366: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 | |
| 136a: c5 f9 7f 45 c0 vmovdqa %xmm0,-0x40(%rbp) | |
| 136f: 48 c7 45 f0 00 00 00 movq $0x0,-0x10(%rbp) | |
| 1376: 00 | |
| 1377: e9 63 04 00 00 jmpq 17df <dotbytes_vec2+0x5ae> | |
| 137c: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 1380: 48 c1 e0 04 shl $0x4,%rax | |
| 1384: 48 89 45 b0 mov %rax,-0x50(%rbp) | |
| 1388: 48 8b 95 28 fc ff ff mov -0x3d8(%rbp),%rdx | |
| 138f: 48 8b 45 b0 mov -0x50(%rbp),%rax | |
| 1393: 48 01 d0 add %rdx,%rax | |
| 1396: 48 89 85 38 fc ff ff mov %rax,-0x3c8(%rbp) | |
| 139d: 48 8b 85 38 fc ff ff mov -0x3c8(%rbp),%rax | |
| 13a4: c5 fa 6f 00 vmovdqu (%rax),%xmm0 | |
| 13a8: c5 f9 7f 45 a0 vmovdqa %xmm0,-0x60(%rbp) | |
| 13ad: c5 f9 6f 45 a0 vmovdqa -0x60(%rbp),%xmm0 | |
| 13b2: c5 f9 7f 45 90 vmovdqa %xmm0,-0x70(%rbp) | |
| 13b7: c5 f9 6f 45 d0 vmovdqa -0x30(%rbp),%xmm0 | |
| 13bc: c5 f9 7f 85 50 fc ff vmovdqa %xmm0,-0x3b0(%rbp) | |
| 13c3: ff | |
| 13c4: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 13c9: c5 f9 7f 85 40 fc ff vmovdqa %xmm0,-0x3c0(%rbp) | |
| 13d0: ff | |
| 13d1: c5 f9 6f 8d 50 fc ff vmovdqa -0x3b0(%rbp),%xmm1 | |
| 13d8: ff | |
| 13d9: c5 f9 6f 85 40 fc ff vmovdqa -0x3c0(%rbp),%xmm0 | |
| 13e0: ff | |
| 13e1: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 13e5: c5 f9 7f 45 80 vmovdqa %xmm0,-0x80(%rbp) | |
| 13ea: c5 f9 6f 45 a0 vmovdqa -0x60(%rbp),%xmm0 | |
| 13ef: c5 f9 7f 85 70 fc ff vmovdqa %xmm0,-0x390(%rbp) | |
| 13f6: ff | |
| 13f7: c7 85 6c fc ff ff 08 movl $0x8,-0x394(%rbp) | |
| 13fe: 00 00 00 | |
| 1401: c5 f9 6f 8d 70 fc ff vmovdqa -0x390(%rbp),%xmm1 | |
| 1408: ff | |
| 1409: c5 f9 6e 85 6c fc ff vmovd -0x394(%rbp),%xmm0 | |
| 1410: ff | |
| 1411: c5 f1 d1 c0 vpsrlw %xmm0,%xmm1,%xmm0 | |
| 1415: c5 f9 7f 85 70 ff ff vmovdqa %xmm0,-0x90(%rbp) | |
| 141c: ff | |
| 141d: c5 f9 6f 85 70 ff ff vmovdqa -0x90(%rbp),%xmm0 | |
| 1424: ff | |
| 1425: c5 f9 7f 85 60 ff ff vmovdqa %xmm0,-0xa0(%rbp) | |
| 142c: ff | |
| 142d: 48 8b 95 20 fc ff ff mov -0x3e0(%rbp),%rdx | |
| 1434: 48 8b 45 b0 mov -0x50(%rbp),%rax | |
| 1438: 48 01 d0 add %rdx,%rax | |
| 143b: 48 89 85 88 fc ff ff mov %rax,-0x378(%rbp) | |
| 1442: 48 8b 85 88 fc ff ff mov -0x378(%rbp),%rax | |
| 1449: c5 fa 6f 00 vmovdqu (%rax),%xmm0 | |
| 144d: c5 f9 7f 85 50 ff ff vmovdqa %xmm0,-0xb0(%rbp) | |
| 1454: ff | |
| 1455: c5 f9 6f 85 50 ff ff vmovdqa -0xb0(%rbp),%xmm0 | |
| 145c: ff | |
| 145d: c5 f9 7f 85 40 ff ff vmovdqa %xmm0,-0xc0(%rbp) | |
| 1464: ff | |
| 1465: c5 f9 6f 45 d0 vmovdqa -0x30(%rbp),%xmm0 | |
| 146a: c5 f9 7f 85 a0 fc ff vmovdqa %xmm0,-0x360(%rbp) | |
| 1471: ff | |
| 1472: c5 f9 6f 85 40 ff ff vmovdqa -0xc0(%rbp),%xmm0 | |
| 1479: ff | |
| 147a: c5 f9 7f 85 90 fc ff vmovdqa %xmm0,-0x370(%rbp) | |
| 1481: ff | |
| 1482: c5 f9 6f 8d a0 fc ff vmovdqa -0x360(%rbp),%xmm1 | |
| 1489: ff | |
| 148a: c5 f9 6f 85 90 fc ff vmovdqa -0x370(%rbp),%xmm0 | |
| 1491: ff | |
| 1492: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1496: c5 f9 7f 85 30 ff ff vmovdqa %xmm0,-0xd0(%rbp) | |
| 149d: ff | |
| 149e: c5 f9 6f 85 50 ff ff vmovdqa -0xb0(%rbp),%xmm0 | |
| 14a5: ff | |
| 14a6: c5 f9 7f 85 c0 fc ff vmovdqa %xmm0,-0x340(%rbp) | |
| 14ad: ff | |
| 14ae: c7 85 bc fc ff ff 08 movl $0x8,-0x344(%rbp) | |
| 14b5: 00 00 00 | |
| 14b8: c5 f9 6f 8d c0 fc ff vmovdqa -0x340(%rbp),%xmm1 | |
| 14bf: ff | |
| 14c0: c5 f9 6e 85 bc fc ff vmovd -0x344(%rbp),%xmm0 | |
| 14c7: ff | |
| 14c8: c5 f1 d1 c0 vpsrlw %xmm0,%xmm1,%xmm0 | |
| 14cc: c5 f9 7f 85 20 ff ff vmovdqa %xmm0,-0xe0(%rbp) | |
| 14d3: ff | |
| 14d4: c5 f9 6f 85 20 ff ff vmovdqa -0xe0(%rbp),%xmm0 | |
| 14db: ff | |
| 14dc: c5 f9 7f 85 10 ff ff vmovdqa %xmm0,-0xf0(%rbp) | |
| 14e3: ff | |
| 14e4: c5 f9 6f 45 80 vmovdqa -0x80(%rbp),%xmm0 | |
| 14e9: c5 f9 7f 85 e0 fc ff vmovdqa %xmm0,-0x320(%rbp) | |
| 14f0: ff | |
| 14f1: c5 f9 6f 85 30 ff ff vmovdqa -0xd0(%rbp),%xmm0 | |
| 14f8: ff | |
| 14f9: c5 f9 7f 85 d0 fc ff vmovdqa %xmm0,-0x330(%rbp) | |
| 1500: ff | |
| 1501: c5 f9 6f 8d e0 fc ff vmovdqa -0x320(%rbp),%xmm1 | |
| 1508: ff | |
| 1509: c5 f9 6f 85 d0 fc ff vmovdqa -0x330(%rbp),%xmm0 | |
| 1510: ff | |
| 1511: c5 f1 d5 c0 vpmullw %xmm0,%xmm1,%xmm0 | |
| 1515: c5 f9 7f 85 00 ff ff vmovdqa %xmm0,-0x100(%rbp) | |
| 151c: ff | |
| 151d: c5 f9 6f 85 60 ff ff vmovdqa -0xa0(%rbp),%xmm0 | |
| 1524: ff | |
| 1525: c5 f9 7f 85 00 fd ff vmovdqa %xmm0,-0x300(%rbp) | |
| 152c: ff | |
| 152d: c5 f9 6f 85 10 ff ff vmovdqa -0xf0(%rbp),%xmm0 | |
| 1534: ff | |
| 1535: c5 f9 7f 85 f0 fc ff vmovdqa %xmm0,-0x310(%rbp) | |
| 153c: ff | |
| 153d: c5 f9 6f 8d 00 fd ff vmovdqa -0x300(%rbp),%xmm1 | |
| 1544: ff | |
| 1545: c5 f9 6f 85 f0 fc ff vmovdqa -0x310(%rbp),%xmm0 | |
| 154c: ff | |
| 154d: c5 f1 d5 c0 vpmullw %xmm0,%xmm1,%xmm0 | |
| 1551: c5 f9 7f 85 f0 fe ff vmovdqa %xmm0,-0x110(%rbp) | |
| 1558: ff | |
| 1559: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1560: ff | |
| 1561: c5 f9 7f 85 10 fd ff vmovdqa %xmm0,-0x2f0(%rbp) | |
| 1568: ff | |
| 1569: c5 f9 6f 85 10 fd ff vmovdqa -0x2f0(%rbp),%xmm0 | |
| 1570: ff | |
| 1571: c4 e2 79 33 c0 vpmovzxwd %xmm0,%xmm0 | |
| 1576: c5 f9 7f 85 e0 fe ff vmovdqa %xmm0,-0x120(%rbp) | |
| 157d: ff | |
| 157e: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1585: ff | |
| 1586: c5 f9 7f 85 30 fd ff vmovdqa %xmm0,-0x2d0(%rbp) | |
| 158d: ff | |
| 158e: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 1593: c5 f9 7f 85 20 fd ff vmovdqa %xmm0,-0x2e0(%rbp) | |
| 159a: ff | |
| 159b: c5 f9 6f 85 30 fd ff vmovdqa -0x2d0(%rbp),%xmm0 | |
| 15a2: ff | |
| 15a3: c5 f9 6d 85 20 fd ff vpunpckhqdq -0x2e0(%rbp),%xmm0,%xmm0 | |
| 15aa: ff | |
| 15ab: 90 nop | |
| 15ac: c5 f9 7f 85 d0 fe ff vmovdqa %xmm0,-0x130(%rbp) | |
| 15b3: ff | |
| 15b4: c5 f9 6f 85 d0 fe ff vmovdqa -0x130(%rbp),%xmm0 | |
| 15bb: ff | |
| 15bc: c5 f9 7f 85 40 fd ff vmovdqa %xmm0,-0x2c0(%rbp) | |
| 15c3: ff | |
| 15c4: c5 f9 6f 85 40 fd ff vmovdqa -0x2c0(%rbp),%xmm0 | |
| 15cb: ff | |
| 15cc: c4 e2 79 33 c0 vpmovzxwd %xmm0,%xmm0 | |
| 15d1: c5 f9 7f 85 c0 fe ff vmovdqa %xmm0,-0x140(%rbp) | |
| 15d8: ff | |
| 15d9: c5 f9 6f 85 e0 fe ff vmovdqa -0x120(%rbp),%xmm0 | |
| 15e0: ff | |
| 15e1: c5 f9 7f 85 60 fd ff vmovdqa %xmm0,-0x2a0(%rbp) | |
| 15e8: ff | |
| 15e9: c5 f9 6f 85 c0 fe ff vmovdqa -0x140(%rbp),%xmm0 | |
| 15f0: ff | |
| 15f1: c5 f9 7f 85 50 fd ff vmovdqa %xmm0,-0x2b0(%rbp) | |
| 15f8: ff | |
| 15f9: c5 f9 6f 8d 50 fd ff vmovdqa -0x2b0(%rbp),%xmm1 | |
| 1600: ff | |
| 1601: c5 f9 6f 85 60 fd ff vmovdqa -0x2a0(%rbp),%xmm0 | |
| 1608: ff | |
| 1609: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 160e: c5 f9 7f 85 b0 fe ff vmovdqa %xmm0,-0x150(%rbp) | |
| 1615: ff | |
| 1616: c5 f9 6f 85 b0 fe ff vmovdqa -0x150(%rbp),%xmm0 | |
| 161d: ff | |
| 161e: c5 f9 7f 85 80 fd ff vmovdqa %xmm0,-0x280(%rbp) | |
| 1625: ff | |
| 1626: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 162b: c5 f9 7f 85 70 fd ff vmovdqa %xmm0,-0x290(%rbp) | |
| 1632: ff | |
| 1633: c5 f9 6f 8d 70 fd ff vmovdqa -0x290(%rbp),%xmm1 | |
| 163a: ff | |
| 163b: c5 f9 6f 85 80 fd ff vmovdqa -0x280(%rbp),%xmm0 | |
| 1642: ff | |
| 1643: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 1648: c5 f9 7f 85 b0 fe ff vmovdqa %xmm0,-0x150(%rbp) | |
| 164f: ff | |
| 1650: c5 f9 6f 85 b0 fe ff vmovdqa -0x150(%rbp),%xmm0 | |
| 1657: ff | |
| 1658: c5 f9 7f 85 a0 fd ff vmovdqa %xmm0,-0x260(%rbp) | |
| 165f: ff | |
| 1660: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 1665: c5 f9 7f 85 90 fd ff vmovdqa %xmm0,-0x270(%rbp) | |
| 166c: ff | |
| 166d: c5 f9 6f 8d 90 fd ff vmovdqa -0x270(%rbp),%xmm1 | |
| 1674: ff | |
| 1675: c5 f9 6f 85 a0 fd ff vmovdqa -0x260(%rbp),%xmm0 | |
| 167c: ff | |
| 167d: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 1682: c5 f9 7f 85 b0 fe ff vmovdqa %xmm0,-0x150(%rbp) | |
| 1689: ff | |
| 168a: c5 f9 6f 85 b0 fe ff vmovdqa -0x150(%rbp),%xmm0 | |
| 1691: ff | |
| 1692: c5 f9 7e c0 vmovd %xmm0,%eax | |
| 1696: 01 45 fc add %eax,-0x4(%rbp) | |
| 1699: c5 f9 6f 85 f0 fe ff vmovdqa -0x110(%rbp),%xmm0 | |
| 16a0: ff | |
| 16a1: c5 f9 7f 85 b0 fd ff vmovdqa %xmm0,-0x250(%rbp) | |
| 16a8: ff | |
| 16a9: c5 f9 6f 85 b0 fd ff vmovdqa -0x250(%rbp),%xmm0 | |
| 16b0: ff | |
| 16b1: c4 e2 79 33 c0 vpmovzxwd %xmm0,%xmm0 | |
| 16b6: c5 f9 7f 85 a0 fe ff vmovdqa %xmm0,-0x160(%rbp) | |
| 16bd: ff | |
| 16be: c5 f9 6f 85 f0 fe ff vmovdqa -0x110(%rbp),%xmm0 | |
| 16c5: ff | |
| 16c6: c5 f9 7f 85 d0 fd ff vmovdqa %xmm0,-0x230(%rbp) | |
| 16cd: ff | |
| 16ce: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 16d3: c5 f9 7f 85 c0 fd ff vmovdqa %xmm0,-0x240(%rbp) | |
| 16da: ff | |
| 16db: c5 f9 6f 85 d0 fd ff vmovdqa -0x230(%rbp),%xmm0 | |
| 16e2: ff | |
| 16e3: c5 f9 6d 85 c0 fd ff vpunpckhqdq -0x240(%rbp),%xmm0,%xmm0 | |
| 16ea: ff | |
| 16eb: 90 nop | |
| 16ec: c5 f9 7f 85 90 fe ff vmovdqa %xmm0,-0x170(%rbp) | |
| 16f3: ff | |
| 16f4: c5 f9 6f 85 90 fe ff vmovdqa -0x170(%rbp),%xmm0 | |
| 16fb: ff | |
| 16fc: c5 f9 7f 85 e0 fd ff vmovdqa %xmm0,-0x220(%rbp) | |
| 1703: ff | |
| 1704: c5 f9 6f 85 e0 fd ff vmovdqa -0x220(%rbp),%xmm0 | |
| 170b: ff | |
| 170c: c4 e2 79 33 c0 vpmovzxwd %xmm0,%xmm0 | |
| 1711: c5 f9 7f 85 80 fe ff vmovdqa %xmm0,-0x180(%rbp) | |
| 1718: ff | |
| 1719: c5 f9 6f 85 a0 fe ff vmovdqa -0x160(%rbp),%xmm0 | |
| 1720: ff | |
| 1721: c5 f9 7f 85 00 fe ff vmovdqa %xmm0,-0x200(%rbp) | |
| 1728: ff | |
| 1729: c5 f9 6f 85 80 fe ff vmovdqa -0x180(%rbp),%xmm0 | |
| 1730: ff | |
| 1731: c5 f9 7f 85 f0 fd ff vmovdqa %xmm0,-0x210(%rbp) | |
| 1738: ff | |
| 1739: c5 f9 6f 8d f0 fd ff vmovdqa -0x210(%rbp),%xmm1 | |
| 1740: ff | |
| 1741: c5 f9 6f 85 00 fe ff vmovdqa -0x200(%rbp),%xmm0 | |
| 1748: ff | |
| 1749: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 174e: c5 f9 7f 85 70 fe ff vmovdqa %xmm0,-0x190(%rbp) | |
| 1755: ff | |
| 1756: c5 f9 6f 85 70 fe ff vmovdqa -0x190(%rbp),%xmm0 | |
| 175d: ff | |
| 175e: c5 f9 7f 85 20 fe ff vmovdqa %xmm0,-0x1e0(%rbp) | |
| 1765: ff | |
| 1766: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 176b: c5 f9 7f 85 10 fe ff vmovdqa %xmm0,-0x1f0(%rbp) | |
| 1772: ff | |
| 1773: c5 f9 6f 8d 10 fe ff vmovdqa -0x1f0(%rbp),%xmm1 | |
| 177a: ff | |
| 177b: c5 f9 6f 85 20 fe ff vmovdqa -0x1e0(%rbp),%xmm0 | |
| 1782: ff | |
| 1783: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 1788: c5 f9 7f 85 70 fe ff vmovdqa %xmm0,-0x190(%rbp) | |
| 178f: ff | |
| 1790: c5 f9 6f 85 70 fe ff vmovdqa -0x190(%rbp),%xmm0 | |
| 1797: ff | |
| 1798: c5 f9 7f 85 40 fe ff vmovdqa %xmm0,-0x1c0(%rbp) | |
| 179f: ff | |
| 17a0: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 17a5: c5 f9 7f 85 30 fe ff vmovdqa %xmm0,-0x1d0(%rbp) | |
| 17ac: ff | |
| 17ad: c5 f9 6f 8d 30 fe ff vmovdqa -0x1d0(%rbp),%xmm1 | |
| 17b4: ff | |
| 17b5: c5 f9 6f 85 40 fe ff vmovdqa -0x1c0(%rbp),%xmm0 | |
| 17bc: ff | |
| 17bd: c4 e2 79 02 c1 vphaddd %xmm1,%xmm0,%xmm0 | |
| 17c2: 90 nop | |
| 17c3: c5 f9 7f 85 70 fe ff vmovdqa %xmm0,-0x190(%rbp) | |
| 17ca: ff | |
| 17cb: c5 f9 6f 85 70 fe ff vmovdqa -0x190(%rbp),%xmm0 | |
| 17d2: ff | |
| 17d3: c5 f9 7e c0 vmovd %xmm0,%eax | |
| 17d7: 01 45 fc add %eax,-0x4(%rbp) | |
| 17da: 48 83 45 f0 01 addq $0x1,-0x10(%rbp) | |
| 17df: 48 8b 85 18 fc ff ff mov -0x3e8(%rbp),%rax | |
| 17e6: 48 c1 e8 04 shr $0x4,%rax | |
| 17ea: 48 39 45 f0 cmp %rax,-0x10(%rbp) | |
| 17ee: 0f 82 88 fb ff ff jb 137c <dotbytes_vec2+0x14b> | |
| 17f4: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 17f8: 48 c1 e0 04 shl $0x4,%rax | |
| 17fc: 48 01 85 28 fc ff ff add %rax,-0x3d8(%rbp) | |
| 1803: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 1807: 48 c1 e0 04 shl $0x4,%rax | |
| 180b: 48 01 85 20 fc ff ff add %rax,-0x3e0(%rbp) | |
| 1812: 48 c7 45 e8 00 00 00 movq $0x0,-0x18(%rbp) | |
| 1819: 00 | |
| 181a: eb 33 jmp 184f <dotbytes_vec2+0x61e> | |
| 181c: 48 8b 95 28 fc ff ff mov -0x3d8(%rbp),%rdx | |
| 1823: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 1827: 48 01 d0 add %rdx,%rax | |
| 182a: 0f b6 00 movzbl (%rax),%eax | |
| 182d: 0f b6 d0 movzbl %al,%edx | |
| 1830: 48 8b 8d 20 fc ff ff mov -0x3e0(%rbp),%rcx | |
| 1837: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 183b: 48 01 c8 add %rcx,%rax | |
| 183e: 0f b6 00 movzbl (%rax),%eax | |
| 1841: 0f b6 c0 movzbl %al,%eax | |
| 1844: 0f af c2 imul %edx,%eax | |
| 1847: 01 45 fc add %eax,-0x4(%rbp) | |
| 184a: 48 83 45 e8 01 addq $0x1,-0x18(%rbp) | |
| 184f: 48 8b 85 18 fc ff ff mov -0x3e8(%rbp),%rax | |
| 1856: 83 e0 0f and $0xf,%eax | |
| 1859: 48 39 45 e8 cmp %rax,-0x18(%rbp) | |
| 185d: 72 bd jb 181c <dotbytes_vec2+0x5eb> | |
| 185f: 0f 31 rdtsc | |
| 1861: 48 c1 e2 20 shl $0x20,%rdx | |
| 1865: 48 09 d0 or %rdx,%rax | |
| 1868: 48 89 45 b8 mov %rax,-0x48(%rbp) | |
| 186c: 48 8b 45 b8 mov -0x48(%rbp),%rax | |
| 1870: 48 2b 45 e0 sub -0x20(%rbp),%rax | |
| 1874: 48 89 c6 mov %rax,%rsi | |
| 1877: 48 8d 3d b2 17 00 00 lea 0x17b2(%rip),%rdi # 3030 <_IO_stdin_used+0x30> | |
| 187e: b8 00 00 00 00 mov $0x0,%eax | |
| 1883: e8 c8 f7 ff ff callq 1050 <printf@plt> | |
| 1888: 8b 45 fc mov -0x4(%rbp),%eax | |
| 188b: c9 leaveq | |
| 188c: c3 retq | |
| 000000000000188d <dotbytes_vec>: | |
| 188d: 55 push %rbp | |
| 188e: 48 89 e5 mov %rsp,%rbp | |
| 1891: 48 81 ec a0 04 00 00 sub $0x4a0,%rsp | |
| 1898: 48 89 bd 78 fb ff ff mov %rdi,-0x488(%rbp) | |
| 189f: 48 89 b5 70 fb ff ff mov %rsi,-0x490(%rbp) | |
| 18a6: 48 89 95 68 fb ff ff mov %rdx,-0x498(%rbp) | |
| 18ad: 0f 31 rdtsc | |
| 18af: 48 c1 e2 20 shl $0x20,%rdx | |
| 18b3: 48 09 d0 or %rdx,%rax | |
| 18b6: 48 89 45 c8 mov %rax,-0x38(%rbp) | |
| 18ba: c7 85 3c fe ff ff ff movl $0xff,-0x1c4(%rbp) | |
| 18c1: 00 00 00 | |
| 18c4: 8b 85 3c fe ff ff mov -0x1c4(%rbp),%eax | |
| 18ca: 89 85 38 fe ff ff mov %eax,-0x1c8(%rbp) | |
| 18d0: 8b 85 3c fe ff ff mov -0x1c4(%rbp),%eax | |
| 18d6: 89 85 34 fe ff ff mov %eax,-0x1cc(%rbp) | |
| 18dc: 8b 85 3c fe ff ff mov -0x1c4(%rbp),%eax | |
| 18e2: 89 85 30 fe ff ff mov %eax,-0x1d0(%rbp) | |
| 18e8: 8b 85 3c fe ff ff mov -0x1c4(%rbp),%eax | |
| 18ee: 89 85 2c fe ff ff mov %eax,-0x1d4(%rbp) | |
| 18f4: 8b 85 38 fe ff ff mov -0x1c8(%rbp),%eax | |
| 18fa: 8b 95 34 fe ff ff mov -0x1cc(%rbp),%edx | |
| 1900: c5 f9 6e d2 vmovd %edx,%xmm2 | |
| 1904: c4 e3 69 22 c8 01 vpinsrd $0x1,%eax,%xmm2,%xmm1 | |
| 190a: 8b 85 30 fe ff ff mov -0x1d0(%rbp),%eax | |
| 1910: 8b 95 2c fe ff ff mov -0x1d4(%rbp),%edx | |
| 1916: c5 f9 6e da vmovd %edx,%xmm3 | |
| 191a: c4 e3 61 22 c0 01 vpinsrd $0x1,%eax,%xmm3,%xmm0 | |
| 1920: c5 f9 6c c1 vpunpcklqdq %xmm1,%xmm0,%xmm0 | |
| 1924: 90 nop | |
| 1925: c5 f9 7f 45 b0 vmovdqa %xmm0,-0x50(%rbp) | |
| 192a: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) | |
| 1931: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 | |
| 1935: c5 f9 7f 45 e0 vmovdqa %xmm0,-0x20(%rbp) | |
| 193a: 48 c7 45 d8 00 00 00 movq $0x0,-0x28(%rbp) | |
| 1941: 00 | |
| 1942: e9 f3 04 00 00 jmpq 1e3a <dotbytes_vec+0x5ad> | |
| 1947: 48 8b 45 d8 mov -0x28(%rbp),%rax | |
| 194b: 48 c1 e0 04 shl $0x4,%rax | |
| 194f: 48 89 45 a0 mov %rax,-0x60(%rbp) | |
| 1953: 48 8b 95 78 fb ff ff mov -0x488(%rbp),%rdx | |
| 195a: 48 8b 45 a0 mov -0x60(%rbp),%rax | |
| 195e: 48 01 d0 add %rdx,%rax | |
| 1961: 48 89 85 88 fb ff ff mov %rax,-0x478(%rbp) | |
| 1968: 48 8b 85 88 fb ff ff mov -0x478(%rbp),%rax | |
| 196f: c5 fa 6f 00 vmovdqu (%rax),%xmm0 | |
| 1973: c5 f9 7f 45 90 vmovdqa %xmm0,-0x70(%rbp) | |
| 1978: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 197d: c5 f9 7f 45 80 vmovdqa %xmm0,-0x80(%rbp) | |
| 1982: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 1987: c5 f9 7f 85 a0 fb ff vmovdqa %xmm0,-0x460(%rbp) | |
| 198e: ff | |
| 198f: c5 f9 6f 45 80 vmovdqa -0x80(%rbp),%xmm0 | |
| 1994: c5 f9 7f 85 90 fb ff vmovdqa %xmm0,-0x470(%rbp) | |
| 199b: ff | |
| 199c: c5 f9 6f 8d a0 fb ff vmovdqa -0x460(%rbp),%xmm1 | |
| 19a3: ff | |
| 19a4: c5 f9 6f 85 90 fb ff vmovdqa -0x470(%rbp),%xmm0 | |
| 19ab: ff | |
| 19ac: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 19b0: c5 f9 7f 85 70 ff ff vmovdqa %xmm0,-0x90(%rbp) | |
| 19b7: ff | |
| 19b8: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 19bd: c5 f9 7f 85 c0 fb ff vmovdqa %xmm0,-0x440(%rbp) | |
| 19c4: ff | |
| 19c5: c7 85 bc fb ff ff 08 movl $0x8,-0x444(%rbp) | |
| 19cc: 00 00 00 | |
| 19cf: c5 f9 6f 8d c0 fb ff vmovdqa -0x440(%rbp),%xmm1 | |
| 19d6: ff | |
| 19d7: c5 f9 6e 85 bc fb ff vmovd -0x444(%rbp),%xmm0 | |
| 19de: ff | |
| 19df: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 19e3: c5 f9 7f 85 60 ff ff vmovdqa %xmm0,-0xa0(%rbp) | |
| 19ea: ff | |
| 19eb: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 19f0: c5 f9 7f 85 e0 fb ff vmovdqa %xmm0,-0x420(%rbp) | |
| 19f7: ff | |
| 19f8: c5 f9 6f 85 60 ff ff vmovdqa -0xa0(%rbp),%xmm0 | |
| 19ff: ff | |
| 1a00: c5 f9 7f 85 d0 fb ff vmovdqa %xmm0,-0x430(%rbp) | |
| 1a07: ff | |
| 1a08: c5 f9 6f 8d e0 fb ff vmovdqa -0x420(%rbp),%xmm1 | |
| 1a0f: ff | |
| 1a10: c5 f9 6f 85 d0 fb ff vmovdqa -0x430(%rbp),%xmm0 | |
| 1a17: ff | |
| 1a18: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1a1c: c5 f9 7f 85 50 ff ff vmovdqa %xmm0,-0xb0(%rbp) | |
| 1a23: ff | |
| 1a24: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 1a29: c5 f9 7f 85 00 fc ff vmovdqa %xmm0,-0x400(%rbp) | |
| 1a30: ff | |
| 1a31: c7 85 fc fb ff ff 10 movl $0x10,-0x404(%rbp) | |
| 1a38: 00 00 00 | |
| 1a3b: c5 f9 6f 8d 00 fc ff vmovdqa -0x400(%rbp),%xmm1 | |
| 1a42: ff | |
| 1a43: c5 f9 6e 85 fc fb ff vmovd -0x404(%rbp),%xmm0 | |
| 1a4a: ff | |
| 1a4b: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 1a4f: c5 f9 7f 85 40 ff ff vmovdqa %xmm0,-0xc0(%rbp) | |
| 1a56: ff | |
| 1a57: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 1a5c: c5 f9 7f 85 20 fc ff vmovdqa %xmm0,-0x3e0(%rbp) | |
| 1a63: ff | |
| 1a64: c5 f9 6f 85 40 ff ff vmovdqa -0xc0(%rbp),%xmm0 | |
| 1a6b: ff | |
| 1a6c: c5 f9 7f 85 10 fc ff vmovdqa %xmm0,-0x3f0(%rbp) | |
| 1a73: ff | |
| 1a74: c5 f9 6f 8d 20 fc ff vmovdqa -0x3e0(%rbp),%xmm1 | |
| 1a7b: ff | |
| 1a7c: c5 f9 6f 85 10 fc ff vmovdqa -0x3f0(%rbp),%xmm0 | |
| 1a83: ff | |
| 1a84: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1a88: c5 f9 7f 85 30 ff ff vmovdqa %xmm0,-0xd0(%rbp) | |
| 1a8f: ff | |
| 1a90: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 1a95: c5 f9 7f 85 40 fc ff vmovdqa %xmm0,-0x3c0(%rbp) | |
| 1a9c: ff | |
| 1a9d: c7 85 3c fc ff ff 18 movl $0x18,-0x3c4(%rbp) | |
| 1aa4: 00 00 00 | |
| 1aa7: c5 f9 6f 8d 40 fc ff vmovdqa -0x3c0(%rbp),%xmm1 | |
| 1aae: ff | |
| 1aaf: c5 f9 6e 85 3c fc ff vmovd -0x3c4(%rbp),%xmm0 | |
| 1ab6: ff | |
| 1ab7: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 1abb: c5 f9 7f 85 20 ff ff vmovdqa %xmm0,-0xe0(%rbp) | |
| 1ac2: ff | |
| 1ac3: c5 f9 6f 85 20 ff ff vmovdqa -0xe0(%rbp),%xmm0 | |
| 1aca: ff | |
| 1acb: c5 f9 7f 85 10 ff ff vmovdqa %xmm0,-0xf0(%rbp) | |
| 1ad2: ff | |
| 1ad3: 48 8b 95 70 fb ff ff mov -0x490(%rbp),%rdx | |
| 1ada: 48 8b 45 a0 mov -0x60(%rbp),%rax | |
| 1ade: 48 01 d0 add %rdx,%rax | |
| 1ae1: 48 89 85 58 fc ff ff mov %rax,-0x3a8(%rbp) | |
| 1ae8: 48 8b 85 58 fc ff ff mov -0x3a8(%rbp),%rax | |
| 1aef: c5 fa 6f 00 vmovdqu (%rax),%xmm0 | |
| 1af3: c5 f9 7f 85 00 ff ff vmovdqa %xmm0,-0x100(%rbp) | |
| 1afa: ff | |
| 1afb: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1b02: ff | |
| 1b03: c5 f9 7f 85 f0 fe ff vmovdqa %xmm0,-0x110(%rbp) | |
| 1b0a: ff | |
| 1b0b: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 1b10: c5 f9 7f 85 70 fc ff vmovdqa %xmm0,-0x390(%rbp) | |
| 1b17: ff | |
| 1b18: c5 f9 6f 85 f0 fe ff vmovdqa -0x110(%rbp),%xmm0 | |
| 1b1f: ff | |
| 1b20: c5 f9 7f 85 60 fc ff vmovdqa %xmm0,-0x3a0(%rbp) | |
| 1b27: ff | |
| 1b28: c5 f9 6f 8d 70 fc ff vmovdqa -0x390(%rbp),%xmm1 | |
| 1b2f: ff | |
| 1b30: c5 f9 6f 85 60 fc ff vmovdqa -0x3a0(%rbp),%xmm0 | |
| 1b37: ff | |
| 1b38: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1b3c: c5 f9 7f 85 e0 fe ff vmovdqa %xmm0,-0x120(%rbp) | |
| 1b43: ff | |
| 1b44: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1b4b: ff | |
| 1b4c: c5 f9 7f 85 90 fc ff vmovdqa %xmm0,-0x370(%rbp) | |
| 1b53: ff | |
| 1b54: c7 85 8c fc ff ff 08 movl $0x8,-0x374(%rbp) | |
| 1b5b: 00 00 00 | |
| 1b5e: c5 f9 6f 8d 90 fc ff vmovdqa -0x370(%rbp),%xmm1 | |
| 1b65: ff | |
| 1b66: c5 f9 6e 85 8c fc ff vmovd -0x374(%rbp),%xmm0 | |
| 1b6d: ff | |
| 1b6e: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 1b72: c5 f9 7f 85 d0 fe ff vmovdqa %xmm0,-0x130(%rbp) | |
| 1b79: ff | |
| 1b7a: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 1b7f: c5 f9 7f 85 b0 fc ff vmovdqa %xmm0,-0x350(%rbp) | |
| 1b86: ff | |
| 1b87: c5 f9 6f 85 d0 fe ff vmovdqa -0x130(%rbp),%xmm0 | |
| 1b8e: ff | |
| 1b8f: c5 f9 7f 85 a0 fc ff vmovdqa %xmm0,-0x360(%rbp) | |
| 1b96: ff | |
| 1b97: c5 f9 6f 8d b0 fc ff vmovdqa -0x350(%rbp),%xmm1 | |
| 1b9e: ff | |
| 1b9f: c5 f9 6f 85 a0 fc ff vmovdqa -0x360(%rbp),%xmm0 | |
| 1ba6: ff | |
| 1ba7: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1bab: c5 f9 7f 85 c0 fe ff vmovdqa %xmm0,-0x140(%rbp) | |
| 1bb2: ff | |
| 1bb3: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1bba: ff | |
| 1bbb: c5 f9 7f 85 d0 fc ff vmovdqa %xmm0,-0x330(%rbp) | |
| 1bc2: ff | |
| 1bc3: c7 85 cc fc ff ff 10 movl $0x10,-0x334(%rbp) | |
| 1bca: 00 00 00 | |
| 1bcd: c5 f9 6f 8d d0 fc ff vmovdqa -0x330(%rbp),%xmm1 | |
| 1bd4: ff | |
| 1bd5: c5 f9 6e 85 cc fc ff vmovd -0x334(%rbp),%xmm0 | |
| 1bdc: ff | |
| 1bdd: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 1be1: c5 f9 7f 85 b0 fe ff vmovdqa %xmm0,-0x150(%rbp) | |
| 1be8: ff | |
| 1be9: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 1bee: c5 f9 7f 85 f0 fc ff vmovdqa %xmm0,-0x310(%rbp) | |
| 1bf5: ff | |
| 1bf6: c5 f9 6f 85 b0 fe ff vmovdqa -0x150(%rbp),%xmm0 | |
| 1bfd: ff | |
| 1bfe: c5 f9 7f 85 e0 fc ff vmovdqa %xmm0,-0x320(%rbp) | |
| 1c05: ff | |
| 1c06: c5 f9 6f 8d f0 fc ff vmovdqa -0x310(%rbp),%xmm1 | |
| 1c0d: ff | |
| 1c0e: c5 f9 6f 85 e0 fc ff vmovdqa -0x320(%rbp),%xmm0 | |
| 1c15: ff | |
| 1c16: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 1c1a: c5 f9 7f 85 a0 fe ff vmovdqa %xmm0,-0x160(%rbp) | |
| 1c21: ff | |
| 1c22: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 1c29: ff | |
| 1c2a: c5 f9 7f 85 10 fd ff vmovdqa %xmm0,-0x2f0(%rbp) | |
| 1c31: ff | |
| 1c32: c7 85 0c fd ff ff 18 movl $0x18,-0x2f4(%rbp) | |
| 1c39: 00 00 00 | |
| 1c3c: c5 f9 6f 8d 10 fd ff vmovdqa -0x2f0(%rbp),%xmm1 | |
| 1c43: ff | |
| 1c44: c5 f9 6e 85 0c fd ff vmovd -0x2f4(%rbp),%xmm0 | |
| 1c4b: ff | |
| 1c4c: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 1c50: c5 f9 7f 85 90 fe ff vmovdqa %xmm0,-0x170(%rbp) | |
| 1c57: ff | |
| 1c58: c5 f9 6f 85 90 fe ff vmovdqa -0x170(%rbp),%xmm0 | |
| 1c5f: ff | |
| 1c60: c5 f9 7f 85 80 fe ff vmovdqa %xmm0,-0x180(%rbp) | |
| 1c67: ff | |
| 1c68: c5 f9 6f 85 70 ff ff vmovdqa -0x90(%rbp),%xmm0 | |
| 1c6f: ff | |
| 1c70: c5 f9 7f 85 30 fd ff vmovdqa %xmm0,-0x2d0(%rbp) | |
| 1c77: ff | |
| 1c78: c5 f9 6f 85 e0 fe ff vmovdqa -0x120(%rbp),%xmm0 | |
| 1c7f: ff | |
| 1c80: c5 f9 7f 85 20 fd ff vmovdqa %xmm0,-0x2e0(%rbp) | |
| 1c87: ff | |
| 1c88: c5 f9 6f 8d 30 fd ff vmovdqa -0x2d0(%rbp),%xmm1 | |
| 1c8f: ff | |
| 1c90: c5 f9 6f 85 20 fd ff vmovdqa -0x2e0(%rbp),%xmm0 | |
| 1c97: ff | |
| 1c98: c4 e2 71 40 c0 vpmulld %xmm0,%xmm1,%xmm0 | |
| 1c9d: c5 f9 7f 85 70 fe ff vmovdqa %xmm0,-0x190(%rbp) | |
| 1ca4: ff | |
| 1ca5: c5 f9 6f 85 50 ff ff vmovdqa -0xb0(%rbp),%xmm0 | |
| 1cac: ff | |
| 1cad: c5 f9 7f 85 50 fd ff vmovdqa %xmm0,-0x2b0(%rbp) | |
| 1cb4: ff | |
| 1cb5: c5 f9 6f 85 c0 fe ff vmovdqa -0x140(%rbp),%xmm0 | |
| 1cbc: ff | |
| 1cbd: c5 f9 7f 85 40 fd ff vmovdqa %xmm0,-0x2c0(%rbp) | |
| 1cc4: ff | |
| 1cc5: c5 f9 6f 8d 50 fd ff vmovdqa -0x2b0(%rbp),%xmm1 | |
| 1ccc: ff | |
| 1ccd: c5 f9 6f 85 40 fd ff vmovdqa -0x2c0(%rbp),%xmm0 | |
| 1cd4: ff | |
| 1cd5: c4 e2 71 40 c0 vpmulld %xmm0,%xmm1,%xmm0 | |
| 1cda: c5 f9 7f 85 60 fe ff vmovdqa %xmm0,-0x1a0(%rbp) | |
| 1ce1: ff | |
| 1ce2: c5 f9 6f 85 30 ff ff vmovdqa -0xd0(%rbp),%xmm0 | |
| 1ce9: ff | |
| 1cea: c5 f9 7f 85 70 fd ff vmovdqa %xmm0,-0x290(%rbp) | |
| 1cf1: ff | |
| 1cf2: c5 f9 6f 85 a0 fe ff vmovdqa -0x160(%rbp),%xmm0 | |
| 1cf9: ff | |
| 1cfa: c5 f9 7f 85 60 fd ff vmovdqa %xmm0,-0x2a0(%rbp) | |
| 1d01: ff | |
| 1d02: c5 f9 6f 8d 70 fd ff vmovdqa -0x290(%rbp),%xmm1 | |
| 1d09: ff | |
| 1d0a: c5 f9 6f 85 60 fd ff vmovdqa -0x2a0(%rbp),%xmm0 | |
| 1d11: ff | |
| 1d12: c4 e2 71 40 c0 vpmulld %xmm0,%xmm1,%xmm0 | |
| 1d17: c5 f9 7f 85 50 fe ff vmovdqa %xmm0,-0x1b0(%rbp) | |
| 1d1e: ff | |
| 1d1f: c5 f9 6f 85 10 ff ff vmovdqa -0xf0(%rbp),%xmm0 | |
| 1d26: ff | |
| 1d27: c5 f9 7f 85 90 fd ff vmovdqa %xmm0,-0x270(%rbp) | |
| 1d2e: ff | |
| 1d2f: c5 f9 6f 85 80 fe ff vmovdqa -0x180(%rbp),%xmm0 | |
| 1d36: ff | |
| 1d37: c5 f9 7f 85 80 fd ff vmovdqa %xmm0,-0x280(%rbp) | |
| 1d3e: ff | |
| 1d3f: c5 f9 6f 8d 90 fd ff vmovdqa -0x270(%rbp),%xmm1 | |
| 1d46: ff | |
| 1d47: c5 f9 6f 85 80 fd ff vmovdqa -0x280(%rbp),%xmm0 | |
| 1d4e: ff | |
| 1d4f: c4 e2 71 40 c0 vpmulld %xmm0,%xmm1,%xmm0 | |
| 1d54: c5 f9 7f 85 40 fe ff vmovdqa %xmm0,-0x1c0(%rbp) | |
| 1d5b: ff | |
| 1d5c: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1d61: c5 f9 7f 85 b0 fd ff vmovdqa %xmm0,-0x250(%rbp) | |
| 1d68: ff | |
| 1d69: c5 f9 6f 85 70 fe ff vmovdqa -0x190(%rbp),%xmm0 | |
| 1d70: ff | |
| 1d71: c5 f9 7f 85 a0 fd ff vmovdqa %xmm0,-0x260(%rbp) | |
| 1d78: ff | |
| 1d79: c5 f9 6f 8d b0 fd ff vmovdqa -0x250(%rbp),%xmm1 | |
| 1d80: ff | |
| 1d81: c5 f9 6f 85 a0 fd ff vmovdqa -0x260(%rbp),%xmm0 | |
| 1d88: ff | |
| 1d89: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 1d8d: c5 f9 7f 45 e0 vmovdqa %xmm0,-0x20(%rbp) | |
| 1d92: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1d97: c5 f9 7f 85 d0 fd ff vmovdqa %xmm0,-0x230(%rbp) | |
| 1d9e: ff | |
| 1d9f: c5 f9 6f 85 60 fe ff vmovdqa -0x1a0(%rbp),%xmm0 | |
| 1da6: ff | |
| 1da7: c5 f9 7f 85 c0 fd ff vmovdqa %xmm0,-0x240(%rbp) | |
| 1dae: ff | |
| 1daf: c5 f9 6f 8d d0 fd ff vmovdqa -0x230(%rbp),%xmm1 | |
| 1db6: ff | |
| 1db7: c5 f9 6f 85 c0 fd ff vmovdqa -0x240(%rbp),%xmm0 | |
| 1dbe: ff | |
| 1dbf: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 1dc3: c5 f9 7f 45 e0 vmovdqa %xmm0,-0x20(%rbp) | |
| 1dc8: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1dcd: c5 f9 7f 85 f0 fd ff vmovdqa %xmm0,-0x210(%rbp) | |
| 1dd4: ff | |
| 1dd5: c5 f9 6f 85 50 fe ff vmovdqa -0x1b0(%rbp),%xmm0 | |
| 1ddc: ff | |
| 1ddd: c5 f9 7f 85 e0 fd ff vmovdqa %xmm0,-0x220(%rbp) | |
| 1de4: ff | |
| 1de5: c5 f9 6f 8d f0 fd ff vmovdqa -0x210(%rbp),%xmm1 | |
| 1dec: ff | |
| 1ded: c5 f9 6f 85 e0 fd ff vmovdqa -0x220(%rbp),%xmm0 | |
| 1df4: ff | |
| 1df5: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 1df9: c5 f9 7f 45 e0 vmovdqa %xmm0,-0x20(%rbp) | |
| 1dfe: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1e03: c5 f9 7f 85 10 fe ff vmovdqa %xmm0,-0x1f0(%rbp) | |
| 1e0a: ff | |
| 1e0b: c5 f9 6f 85 40 fe ff vmovdqa -0x1c0(%rbp),%xmm0 | |
| 1e12: ff | |
| 1e13: c5 f9 7f 85 00 fe ff vmovdqa %xmm0,-0x200(%rbp) | |
| 1e1a: ff | |
| 1e1b: c5 f9 6f 8d 10 fe ff vmovdqa -0x1f0(%rbp),%xmm1 | |
| 1e22: ff | |
| 1e23: c5 f9 6f 85 00 fe ff vmovdqa -0x200(%rbp),%xmm0 | |
| 1e2a: ff | |
| 1e2b: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 1e2f: 90 nop | |
| 1e30: c5 f9 7f 45 e0 vmovdqa %xmm0,-0x20(%rbp) | |
| 1e35: 48 83 45 d8 01 addq $0x1,-0x28(%rbp) | |
| 1e3a: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax | |
| 1e41: 48 c1 e8 04 shr $0x4,%rax | |
| 1e45: 48 39 45 d8 cmp %rax,-0x28(%rbp) | |
| 1e49: 0f 82 f8 fa ff ff jb 1947 <dotbytes_vec+0xba> | |
| 1e4f: 48 8b 45 d8 mov -0x28(%rbp),%rax | |
| 1e53: 48 c1 e0 04 shl $0x4,%rax | |
| 1e57: 48 01 85 78 fb ff ff add %rax,-0x488(%rbp) | |
| 1e5e: 48 8b 45 d8 mov -0x28(%rbp),%rax | |
| 1e62: 48 c1 e0 04 shl $0x4,%rax | |
| 1e66: 48 01 85 70 fb ff ff add %rax,-0x490(%rbp) | |
| 1e6d: 48 c7 45 d0 00 00 00 movq $0x0,-0x30(%rbp) | |
| 1e74: 00 | |
| 1e75: eb 33 jmp 1eaa <dotbytes_vec+0x61d> | |
| 1e77: 48 8b 95 78 fb ff ff mov -0x488(%rbp),%rdx | |
| 1e7e: 48 8b 45 d0 mov -0x30(%rbp),%rax | |
| 1e82: 48 01 d0 add %rdx,%rax | |
| 1e85: 0f b6 00 movzbl (%rax),%eax | |
| 1e88: 0f b6 d0 movzbl %al,%edx | |
| 1e8b: 48 8b 8d 70 fb ff ff mov -0x490(%rbp),%rcx | |
| 1e92: 48 8b 45 d0 mov -0x30(%rbp),%rax | |
| 1e96: 48 01 c8 add %rcx,%rax | |
| 1e99: 0f b6 00 movzbl (%rax),%eax | |
| 1e9c: 0f b6 c0 movzbl %al,%eax | |
| 1e9f: 0f af c2 imul %edx,%eax | |
| 1ea2: 01 45 fc add %eax,-0x4(%rbp) | |
| 1ea5: 48 83 45 d0 01 addq $0x1,-0x30(%rbp) | |
| 1eaa: 48 8b 85 68 fb ff ff mov -0x498(%rbp),%rax | |
| 1eb1: 83 e0 0f and $0xf,%eax | |
| 1eb4: 48 39 45 d0 cmp %rax,-0x30(%rbp) | |
| 1eb8: 72 bd jb 1e77 <dotbytes_vec+0x5ea> | |
| 1eba: 0f 31 rdtsc | |
| 1ebc: 48 c1 e2 20 shl $0x20,%rdx | |
| 1ec0: 48 09 d0 or %rdx,%rax | |
| 1ec3: 48 89 45 a8 mov %rax,-0x58(%rbp) | |
| 1ec7: 48 8b 45 a8 mov -0x58(%rbp),%rax | |
| 1ecb: 48 2b 45 c8 sub -0x38(%rbp),%rax | |
| 1ecf: 48 89 c6 mov %rax,%rsi | |
| 1ed2: 48 8d 3d 87 11 00 00 lea 0x1187(%rip),%rdi # 3060 <_IO_stdin_used+0x60> | |
| 1ed9: b8 00 00 00 00 mov $0x0,%eax | |
| 1ede: e8 6d f1 ff ff callq 1050 <printf@plt> | |
| 1ee3: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1ee8: c5 f9 7e c0 vmovd %xmm0,%eax | |
| 1eec: 89 c2 mov %eax,%edx | |
| 1eee: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1ef3: c4 e3 79 16 c0 01 vpextrd $0x1,%xmm0,%eax | |
| 1ef9: 01 c2 add %eax,%edx | |
| 1efb: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1f00: c4 e3 79 16 c0 02 vpextrd $0x2,%xmm0,%eax | |
| 1f06: 01 c2 add %eax,%edx | |
| 1f08: c5 f9 6f 45 e0 vmovdqa -0x20(%rbp),%xmm0 | |
| 1f0d: c4 e3 79 16 c0 03 vpextrd $0x3,%xmm0,%eax | |
| 1f13: 01 c2 add %eax,%edx | |
| 1f15: 8b 45 fc mov -0x4(%rbp),%eax | |
| 1f18: 01 d0 add %edx,%eax | |
| 1f1a: c9 leaveq | |
| 1f1b: c3 retq | |
| 0000000000001f1c <sumbytes_naive>: | |
| 1f1c: 55 push %rbp | |
| 1f1d: 48 89 e5 mov %rsp,%rbp | |
| 1f20: 48 83 ec 20 sub $0x20,%rsp | |
| 1f24: 48 89 7d e8 mov %rdi,-0x18(%rbp) | |
| 1f28: 48 89 75 e0 mov %rsi,-0x20(%rbp) | |
| 1f2c: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) | |
| 1f33: 48 c7 45 f0 00 00 00 movq $0x0,-0x10(%rbp) | |
| 1f3a: 00 | |
| 1f3b: eb 34 jmp 1f71 <sumbytes_naive+0x55> | |
| 1f3d: 48 8b 55 e8 mov -0x18(%rbp),%rdx | |
| 1f41: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 1f45: 48 01 d0 add %rdx,%rax | |
| 1f48: 0f b6 00 movzbl (%rax),%eax | |
| 1f4b: 0f b6 c0 movzbl %al,%eax | |
| 1f4e: 01 45 fc add %eax,-0x4(%rbp) | |
| 1f51: 8b 55 fc mov -0x4(%rbp),%edx | |
| 1f54: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 1f58: 48 89 c6 mov %rax,%rsi | |
| 1f5b: 48 8d 3d 26 11 00 00 lea 0x1126(%rip),%rdi # 3088 <_IO_stdin_used+0x88> | |
| 1f62: b8 00 00 00 00 mov $0x0,%eax | |
| 1f67: e8 e4 f0 ff ff callq 1050 <printf@plt> | |
| 1f6c: 48 83 45 f0 01 addq $0x1,-0x10(%rbp) | |
| 1f71: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 1f75: 48 3b 45 e0 cmp -0x20(%rbp),%rax | |
| 1f79: 72 c2 jb 1f3d <sumbytes_naive+0x21> | |
| 1f7b: 8b 45 fc mov -0x4(%rbp),%eax | |
| 1f7e: c9 leaveq | |
| 1f7f: c3 retq | |
| 0000000000001f80 <sumbytes_vec>: | |
| 1f80: 55 push %rbp | |
| 1f81: 48 89 e5 mov %rsp,%rbp | |
| 1f84: 48 81 ec c8 01 00 00 sub $0x1c8,%rsp | |
| 1f8b: 48 89 bd c8 fd ff ff mov %rdi,-0x238(%rbp) | |
| 1f92: 48 89 b5 c0 fd ff ff mov %rsi,-0x240(%rbp) | |
| 1f99: c7 85 3c ff ff ff ff movl $0xff,-0xc4(%rbp) | |
| 1fa0: 00 00 00 | |
| 1fa3: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax | |
| 1fa9: 89 85 38 ff ff ff mov %eax,-0xc8(%rbp) | |
| 1faf: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax | |
| 1fb5: 89 85 34 ff ff ff mov %eax,-0xcc(%rbp) | |
| 1fbb: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax | |
| 1fc1: 89 85 30 ff ff ff mov %eax,-0xd0(%rbp) | |
| 1fc7: 8b 85 3c ff ff ff mov -0xc4(%rbp),%eax | |
| 1fcd: 89 85 2c ff ff ff mov %eax,-0xd4(%rbp) | |
| 1fd3: 8b 85 38 ff ff ff mov -0xc8(%rbp),%eax | |
| 1fd9: 8b 95 34 ff ff ff mov -0xcc(%rbp),%edx | |
| 1fdf: c5 f9 6e d2 vmovd %edx,%xmm2 | |
| 1fe3: c4 e3 69 22 c8 01 vpinsrd $0x1,%eax,%xmm2,%xmm1 | |
| 1fe9: 8b 85 30 ff ff ff mov -0xd0(%rbp),%eax | |
| 1fef: 8b 95 2c ff ff ff mov -0xd4(%rbp),%edx | |
| 1ff5: c5 f9 6e da vmovd %edx,%xmm3 | |
| 1ff9: c4 e3 61 22 c0 01 vpinsrd $0x1,%eax,%xmm3,%xmm0 | |
| 1fff: c5 f9 6c c1 vpunpcklqdq %xmm1,%xmm0,%xmm0 | |
| 2003: 90 nop | |
| 2004: c5 f9 7f 45 d0 vmovdqa %xmm0,-0x30(%rbp) | |
| 2009: c5 f9 ef c0 vpxor %xmm0,%xmm0,%xmm0 | |
| 200d: c5 f9 7f 45 f0 vmovdqa %xmm0,-0x10(%rbp) | |
| 2012: 48 c7 45 e8 00 00 00 movq $0x0,-0x18(%rbp) | |
| 2019: 00 | |
| 201a: e9 4c 02 00 00 jmpq 226b <sumbytes_vec+0x2eb> | |
| 201f: 48 8b 95 c8 fd ff ff mov -0x238(%rbp),%rdx | |
| 2026: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 202a: 48 01 d0 add %rdx,%rax | |
| 202d: 48 89 85 d8 fd ff ff mov %rax,-0x228(%rbp) | |
| 2034: 48 8b 85 d8 fd ff ff mov -0x228(%rbp),%rax | |
| 203b: c5 fa 6f 00 vmovdqu (%rax),%xmm0 | |
| 203f: c5 f9 7f 45 c0 vmovdqa %xmm0,-0x40(%rbp) | |
| 2044: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 2049: c5 f9 7f 45 b0 vmovdqa %xmm0,-0x50(%rbp) | |
| 204e: c5 f9 6f 45 d0 vmovdqa -0x30(%rbp),%xmm0 | |
| 2053: c5 f9 7f 85 f0 fd ff vmovdqa %xmm0,-0x210(%rbp) | |
| 205a: ff | |
| 205b: c5 f9 6f 45 b0 vmovdqa -0x50(%rbp),%xmm0 | |
| 2060: c5 f9 7f 85 e0 fd ff vmovdqa %xmm0,-0x220(%rbp) | |
| 2067: ff | |
| 2068: c5 f9 6f 8d f0 fd ff vmovdqa -0x210(%rbp),%xmm1 | |
| 206f: ff | |
| 2070: c5 f9 6f 85 e0 fd ff vmovdqa -0x220(%rbp),%xmm0 | |
| 2077: ff | |
| 2078: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 207c: c5 f9 7f 45 a0 vmovdqa %xmm0,-0x60(%rbp) | |
| 2081: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 2086: c5 f9 7f 85 10 fe ff vmovdqa %xmm0,-0x1f0(%rbp) | |
| 208d: ff | |
| 208e: c7 85 0c fe ff ff 08 movl $0x8,-0x1f4(%rbp) | |
| 2095: 00 00 00 | |
| 2098: c5 f9 6f 8d 10 fe ff vmovdqa -0x1f0(%rbp),%xmm1 | |
| 209f: ff | |
| 20a0: c5 f9 6e 85 0c fe ff vmovd -0x1f4(%rbp),%xmm0 | |
| 20a7: ff | |
| 20a8: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 20ac: c5 f9 7f 45 90 vmovdqa %xmm0,-0x70(%rbp) | |
| 20b1: c5 f9 6f 45 d0 vmovdqa -0x30(%rbp),%xmm0 | |
| 20b6: c5 f9 7f 85 30 fe ff vmovdqa %xmm0,-0x1d0(%rbp) | |
| 20bd: ff | |
| 20be: c5 f9 6f 45 90 vmovdqa -0x70(%rbp),%xmm0 | |
| 20c3: c5 f9 7f 85 20 fe ff vmovdqa %xmm0,-0x1e0(%rbp) | |
| 20ca: ff | |
| 20cb: c5 f9 6f 8d 30 fe ff vmovdqa -0x1d0(%rbp),%xmm1 | |
| 20d2: ff | |
| 20d3: c5 f9 6f 85 20 fe ff vmovdqa -0x1e0(%rbp),%xmm0 | |
| 20da: ff | |
| 20db: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 20df: c5 f9 7f 45 80 vmovdqa %xmm0,-0x80(%rbp) | |
| 20e4: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 20e9: c5 f9 7f 85 50 fe ff vmovdqa %xmm0,-0x1b0(%rbp) | |
| 20f0: ff | |
| 20f1: c7 85 4c fe ff ff 10 movl $0x10,-0x1b4(%rbp) | |
| 20f8: 00 00 00 | |
| 20fb: c5 f9 6f 8d 50 fe ff vmovdqa -0x1b0(%rbp),%xmm1 | |
| 2102: ff | |
| 2103: c5 f9 6e 85 4c fe ff vmovd -0x1b4(%rbp),%xmm0 | |
| 210a: ff | |
| 210b: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 210f: c5 f9 7f 85 70 ff ff vmovdqa %xmm0,-0x90(%rbp) | |
| 2116: ff | |
| 2117: c5 f9 6f 45 d0 vmovdqa -0x30(%rbp),%xmm0 | |
| 211c: c5 f9 7f 85 70 fe ff vmovdqa %xmm0,-0x190(%rbp) | |
| 2123: ff | |
| 2124: c5 f9 6f 85 70 ff ff vmovdqa -0x90(%rbp),%xmm0 | |
| 212b: ff | |
| 212c: c5 f9 7f 85 60 fe ff vmovdqa %xmm0,-0x1a0(%rbp) | |
| 2133: ff | |
| 2134: c5 f9 6f 8d 70 fe ff vmovdqa -0x190(%rbp),%xmm1 | |
| 213b: ff | |
| 213c: c5 f9 6f 85 60 fe ff vmovdqa -0x1a0(%rbp),%xmm0 | |
| 2143: ff | |
| 2144: c5 f1 db c0 vpand %xmm0,%xmm1,%xmm0 | |
| 2148: c5 f9 7f 85 60 ff ff vmovdqa %xmm0,-0xa0(%rbp) | |
| 214f: ff | |
| 2150: c5 f9 6f 45 c0 vmovdqa -0x40(%rbp),%xmm0 | |
| 2155: c5 f9 7f 85 90 fe ff vmovdqa %xmm0,-0x170(%rbp) | |
| 215c: ff | |
| 215d: c7 85 8c fe ff ff 18 movl $0x18,-0x174(%rbp) | |
| 2164: 00 00 00 | |
| 2167: c5 f9 6f 8d 90 fe ff vmovdqa -0x170(%rbp),%xmm1 | |
| 216e: ff | |
| 216f: c5 f9 6e 85 8c fe ff vmovd -0x174(%rbp),%xmm0 | |
| 2176: ff | |
| 2177: c5 f1 d2 c0 vpsrld %xmm0,%xmm1,%xmm0 | |
| 217b: c5 f9 7f 85 50 ff ff vmovdqa %xmm0,-0xb0(%rbp) | |
| 2182: ff | |
| 2183: c5 f9 6f 85 50 ff ff vmovdqa -0xb0(%rbp),%xmm0 | |
| 218a: ff | |
| 218b: c5 f9 7f 85 40 ff ff vmovdqa %xmm0,-0xc0(%rbp) | |
| 2192: ff | |
| 2193: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 2198: c5 f9 7f 85 b0 fe ff vmovdqa %xmm0,-0x150(%rbp) | |
| 219f: ff | |
| 21a0: c5 f9 6f 45 a0 vmovdqa -0x60(%rbp),%xmm0 | |
| 21a5: c5 f9 7f 85 a0 fe ff vmovdqa %xmm0,-0x160(%rbp) | |
| 21ac: ff | |
| 21ad: c5 f9 6f 8d b0 fe ff vmovdqa -0x150(%rbp),%xmm1 | |
| 21b4: ff | |
| 21b5: c5 f9 6f 85 a0 fe ff vmovdqa -0x160(%rbp),%xmm0 | |
| 21bc: ff | |
| 21bd: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 21c1: c5 f9 7f 45 f0 vmovdqa %xmm0,-0x10(%rbp) | |
| 21c6: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 21cb: c5 f9 7f 85 d0 fe ff vmovdqa %xmm0,-0x130(%rbp) | |
| 21d2: ff | |
| 21d3: c5 f9 6f 45 80 vmovdqa -0x80(%rbp),%xmm0 | |
| 21d8: c5 f9 7f 85 c0 fe ff vmovdqa %xmm0,-0x140(%rbp) | |
| 21df: ff | |
| 21e0: c5 f9 6f 8d d0 fe ff vmovdqa -0x130(%rbp),%xmm1 | |
| 21e7: ff | |
| 21e8: c5 f9 6f 85 c0 fe ff vmovdqa -0x140(%rbp),%xmm0 | |
| 21ef: ff | |
| 21f0: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 21f4: c5 f9 7f 45 f0 vmovdqa %xmm0,-0x10(%rbp) | |
| 21f9: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 21fe: c5 f9 7f 85 f0 fe ff vmovdqa %xmm0,-0x110(%rbp) | |
| 2205: ff | |
| 2206: c5 f9 6f 85 60 ff ff vmovdqa -0xa0(%rbp),%xmm0 | |
| 220d: ff | |
| 220e: c5 f9 7f 85 e0 fe ff vmovdqa %xmm0,-0x120(%rbp) | |
| 2215: ff | |
| 2216: c5 f9 6f 8d f0 fe ff vmovdqa -0x110(%rbp),%xmm1 | |
| 221d: ff | |
| 221e: c5 f9 6f 85 e0 fe ff vmovdqa -0x120(%rbp),%xmm0 | |
| 2225: ff | |
| 2226: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 222a: c5 f9 7f 45 f0 vmovdqa %xmm0,-0x10(%rbp) | |
| 222f: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 2234: c5 f9 7f 85 10 ff ff vmovdqa %xmm0,-0xf0(%rbp) | |
| 223b: ff | |
| 223c: c5 f9 6f 85 40 ff ff vmovdqa -0xc0(%rbp),%xmm0 | |
| 2243: ff | |
| 2244: c5 f9 7f 85 00 ff ff vmovdqa %xmm0,-0x100(%rbp) | |
| 224b: ff | |
| 224c: c5 f9 6f 8d 10 ff ff vmovdqa -0xf0(%rbp),%xmm1 | |
| 2253: ff | |
| 2254: c5 f9 6f 85 00 ff ff vmovdqa -0x100(%rbp),%xmm0 | |
| 225b: ff | |
| 225c: c5 f1 fe c0 vpaddd %xmm0,%xmm1,%xmm0 | |
| 2260: 90 nop | |
| 2261: c5 f9 7f 45 f0 vmovdqa %xmm0,-0x10(%rbp) | |
| 2266: 48 83 45 e8 10 addq $0x10,-0x18(%rbp) | |
| 226b: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 226f: 48 3b 85 c0 fd ff ff cmp -0x240(%rbp),%rax | |
| 2276: 0f 82 a3 fd ff ff jb 201f <sumbytes_vec+0x9f> | |
| 227c: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 2281: c5 f9 7e c0 vmovd %xmm0,%eax | |
| 2285: 89 c2 mov %eax,%edx | |
| 2287: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 228c: c4 e3 79 16 c0 01 vpextrd $0x1,%xmm0,%eax | |
| 2292: 01 c2 add %eax,%edx | |
| 2294: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 2299: c4 e3 79 16 c0 02 vpextrd $0x2,%xmm0,%eax | |
| 229f: 01 c2 add %eax,%edx | |
| 22a1: c5 f9 6f 45 f0 vmovdqa -0x10(%rbp),%xmm0 | |
| 22a6: c4 e3 79 16 c0 03 vpextrd $0x3,%xmm0,%eax | |
| 22ac: 01 d0 add %edx,%eax | |
| 22ae: c9 leaveq | |
| 22af: c3 retq | |
| 00000000000022b0 <main>: | |
| 22b0: 55 push %rbp | |
| 22b1: 48 89 e5 mov %rsp,%rbp | |
| 22b4: 48 83 ec 30 sub $0x30,%rsp | |
| 22b8: 89 7d dc mov %edi,-0x24(%rbp) | |
| 22bb: 48 89 75 d0 mov %rsi,-0x30(%rbp) | |
| 22bf: 83 7d dc 03 cmpl $0x3,-0x24(%rbp) | |
| 22c3: 74 16 je 22db <main+0x2b> | |
| 22c5: 48 8d 3d dc 0d 00 00 lea 0xddc(%rip),%rdi # 30a8 <_IO_stdin_used+0xa8> | |
| 22cc: e8 6f ed ff ff callq 1040 <puts@plt> | |
| 22d1: b8 00 00 00 00 mov $0x0,%eax | |
| 22d6: e9 83 01 00 00 jmpq 245e <main+0x1ae> | |
| 22db: 48 8b 45 d0 mov -0x30(%rbp),%rax | |
| 22df: 48 83 c0 10 add $0x10,%rax | |
| 22e3: 48 8b 00 mov (%rax),%rax | |
| 22e6: 48 89 c7 mov %rax,%rdi | |
| 22e9: e8 92 ed ff ff callq 1080 <atoi@plt> | |
| 22ee: 89 c7 mov %eax,%edi | |
| 22f0: e8 6b ed ff ff callq 1060 <srand@plt> | |
| 22f5: 48 8b 45 d0 mov -0x30(%rbp),%rax | |
| 22f9: 48 83 c0 08 add $0x8,%rax | |
| 22fd: 48 8b 00 mov (%rax),%rax | |
| 2300: 48 89 c7 mov %rax,%rdi | |
| 2303: e8 78 ed ff ff callq 1080 <atoi@plt> | |
| 2308: 89 45 f8 mov %eax,-0x8(%rbp) | |
| 230b: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 230e: 89 c6 mov %eax,%esi | |
| 2310: 48 8d 3d c9 0d 00 00 lea 0xdc9(%rip),%rdi # 30e0 <_IO_stdin_used+0xe0> | |
| 2317: b8 00 00 00 00 mov $0x0,%eax | |
| 231c: e8 2f ed ff ff callq 1050 <printf@plt> | |
| 2321: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 2324: 48 98 cltq | |
| 2326: 48 89 c7 mov %rax,%rdi | |
| 2329: e8 42 ed ff ff callq 1070 <malloc@plt> | |
| 232e: 48 89 45 f0 mov %rax,-0x10(%rbp) | |
| 2332: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 2335: 48 98 cltq | |
| 2337: 48 89 c7 mov %rax,%rdi | |
| 233a: e8 31 ed ff ff callq 1070 <malloc@plt> | |
| 233f: 48 89 45 e8 mov %rax,-0x18(%rbp) | |
| 2343: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) | |
| 234a: eb 4a jmp 2396 <main+0xe6> | |
| 234c: e8 3f ed ff ff callq 1090 <rand@plt> | |
| 2351: 99 cltd | |
| 2352: c1 ea 18 shr $0x18,%edx | |
| 2355: 01 d0 add %edx,%eax | |
| 2357: 0f b6 c0 movzbl %al,%eax | |
| 235a: 29 d0 sub %edx,%eax | |
| 235c: 89 c1 mov %eax,%ecx | |
| 235e: 8b 45 fc mov -0x4(%rbp),%eax | |
| 2361: 48 63 d0 movslq %eax,%rdx | |
| 2364: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 2368: 48 01 d0 add %rdx,%rax | |
| 236b: 89 ca mov %ecx,%edx | |
| 236d: 88 10 mov %dl,(%rax) | |
| 236f: e8 1c ed ff ff callq 1090 <rand@plt> | |
| 2374: 99 cltd | |
| 2375: c1 ea 18 shr $0x18,%edx | |
| 2378: 01 d0 add %edx,%eax | |
| 237a: 0f b6 c0 movzbl %al,%eax | |
| 237d: 29 d0 sub %edx,%eax | |
| 237f: 89 c1 mov %eax,%ecx | |
| 2381: 8b 45 fc mov -0x4(%rbp),%eax | |
| 2384: 48 63 d0 movslq %eax,%rdx | |
| 2387: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 238b: 48 01 d0 add %rdx,%rax | |
| 238e: 89 ca mov %ecx,%edx | |
| 2390: 88 10 mov %dl,(%rax) | |
| 2392: 83 45 fc 01 addl $0x1,-0x4(%rbp) | |
| 2396: 8b 45 fc mov -0x4(%rbp),%eax | |
| 2399: 3b 45 f8 cmp -0x8(%rbp),%eax | |
| 239c: 7c ae jl 234c <main+0x9c> | |
| 239e: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 23a1: 48 63 d0 movslq %eax,%rdx | |
| 23a4: 48 8b 4d e8 mov -0x18(%rbp),%rcx | |
| 23a8: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 23ac: 48 89 ce mov %rcx,%rsi | |
| 23af: 48 89 c7 mov %rax,%rdi | |
| 23b2: e8 de ed ff ff callq 1195 <dotbytes_naive> | |
| 23b7: 48 89 45 e0 mov %rax,-0x20(%rbp) | |
| 23bb: 48 8b 45 e0 mov -0x20(%rbp),%rax | |
| 23bf: 48 89 c6 mov %rax,%rsi | |
| 23c2: 48 8d 3d 3f 0d 00 00 lea 0xd3f(%rip),%rdi # 3108 <_IO_stdin_used+0x108> | |
| 23c9: b8 00 00 00 00 mov $0x0,%eax | |
| 23ce: e8 7d ec ff ff callq 1050 <printf@plt> | |
| 23d3: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 23d6: 48 63 d0 movslq %eax,%rdx | |
| 23d9: 48 8b 4d e8 mov -0x18(%rbp),%rcx | |
| 23dd: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 23e1: 48 89 ce mov %rcx,%rsi | |
| 23e4: 48 89 c7 mov %rax,%rdi | |
| 23e7: e8 a1 f4 ff ff callq 188d <dotbytes_vec> | |
| 23ec: 89 c0 mov %eax,%eax | |
| 23ee: 48 89 45 e0 mov %rax,-0x20(%rbp) | |
| 23f2: 48 8b 45 e0 mov -0x20(%rbp),%rax | |
| 23f6: 48 89 c6 mov %rax,%rsi | |
| 23f9: 48 8d 3d 30 0d 00 00 lea 0xd30(%rip),%rdi # 3130 <_IO_stdin_used+0x130> | |
| 2400: b8 00 00 00 00 mov $0x0,%eax | |
| 2405: e8 46 ec ff ff callq 1050 <printf@plt> | |
| 240a: 8b 45 f8 mov -0x8(%rbp),%eax | |
| 240d: 48 63 d0 movslq %eax,%rdx | |
| 2410: 48 8b 4d e8 mov -0x18(%rbp),%rcx | |
| 2414: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 2418: 48 89 ce mov %rcx,%rsi | |
| 241b: 48 89 c7 mov %rax,%rdi | |
| 241e: e8 0e ee ff ff callq 1231 <dotbytes_vec2> | |
| 2423: 89 c0 mov %eax,%eax | |
| 2425: 48 89 45 e0 mov %rax,-0x20(%rbp) | |
| 2429: 48 8b 45 e0 mov -0x20(%rbp),%rax | |
| 242d: 48 89 c6 mov %rax,%rsi | |
| 2430: 48 8d 3d 21 0d 00 00 lea 0xd21(%rip),%rdi # 3158 <_IO_stdin_used+0x158> | |
| 2437: b8 00 00 00 00 mov $0x0,%eax | |
| 243c: e8 0f ec ff ff callq 1050 <printf@plt> | |
| 2441: 48 8b 45 f0 mov -0x10(%rbp),%rax | |
| 2445: 48 89 c7 mov %rax,%rdi | |
| 2448: e8 e3 eb ff ff callq 1030 <free@plt> | |
| 244d: 48 8b 45 e8 mov -0x18(%rbp),%rax | |
| 2451: 48 89 c7 mov %rax,%rdi | |
| 2454: e8 d7 eb ff ff callq 1030 <free@plt> | |
| 2459: b8 00 00 00 00 mov $0x0,%eax | |
| 245e: c9 leaveq | |
| 245f: c3 retq | |
| 0000000000002460 <__libc_csu_init>: | |
| 2460: 41 57 push %r15 | |
| 2462: 4c 8d 3d 7f 29 00 00 lea 0x297f(%rip),%r15 # 4de8 <__frame_dummy_init_array_entry> | |
| 2469: 41 56 push %r14 | |
| 246b: 49 89 d6 mov %rdx,%r14 | |
| 246e: 41 55 push %r13 | |
| 2470: 49 89 f5 mov %rsi,%r13 | |
| 2473: 41 54 push %r12 | |
| 2475: 41 89 fc mov %edi,%r12d | |
| 2478: 55 push %rbp | |
| 2479: 48 8d 2d 70 29 00 00 lea 0x2970(%rip),%rbp # 4df0 <__do_global_dtors_aux_fini_array_entry> | |
| 2480: 53 push %rbx | |
| 2481: 4c 29 fd sub %r15,%rbp | |
| 2484: 48 83 ec 08 sub $0x8,%rsp | |
| 2488: e8 73 eb ff ff callq 1000 <_init> | |
| 248d: 48 c1 fd 03 sar $0x3,%rbp | |
| 2491: 74 1b je 24ae <__libc_csu_init+0x4e> | |
| 2493: 31 db xor %ebx,%ebx | |
| 2495: 0f 1f 00 nopl (%rax) | |
| 2498: 4c 89 f2 mov %r14,%rdx | |
| 249b: 4c 89 ee mov %r13,%rsi | |
| 249e: 44 89 e7 mov %r12d,%edi | |
| 24a1: 41 ff 14 df callq *(%r15,%rbx,8) | |
| 24a5: 48 83 c3 01 add $0x1,%rbx | |
| 24a9: 48 39 dd cmp %rbx,%rbp | |
| 24ac: 75 ea jne 2498 <__libc_csu_init+0x38> | |
| 24ae: 48 83 c4 08 add $0x8,%rsp | |
| 24b2: 5b pop %rbx | |
| 24b3: 5d pop %rbp | |
| 24b4: 41 5c pop %r12 | |
| 24b6: 41 5d pop %r13 | |
| 24b8: 41 5e pop %r14 | |
| 24ba: 41 5f pop %r15 | |
| 24bc: c3 retq | |
| 24bd: 0f 1f 00 nopl (%rax) | |
| 00000000000024c0 <__libc_csu_fini>: | |
| 24c0: c3 retq | |
| Disassembly of section .fini: | |
| 00000000000024c4 <_fini>: | |
| 24c4: 48 83 ec 08 sub $0x8,%rsp | |
| 24c8: 48 83 c4 08 add $0x8,%rsp | |
| 24cc: c3 retq |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment