508 lines · plain
1 .text2 .file "matmul.c"3 .section .rodata.cst8,"aM",@progbits,84 .p2align 3 # -- Begin function init_array5.LCPI0_0:6 .quad 4602678819172646912 # double 0.57 .text8 .globl init_array9 .p2align 4, 0x9010 .type init_array,@function11init_array: # @init_array12 .cfi_startproc13# %bb.0: # %entry14 pushq %rbp15 .cfi_def_cfa_offset 1616 .cfi_offset %rbp, -1617 movq %rsp, %rbp18 .cfi_def_cfa_register %rbp19 leaq B(%rip), %rax20 leaq A(%rip), %rcx21 xorl %r8d, %r8d22 movsd .LCPI0_0(%rip), %xmm0 # xmm0 = mem[0],zero23 xorl %r9d, %r9d24 .p2align 4, 0x9025.LBB0_1: # %polly.loop_header26 # =>This Loop Header: Depth=127 # Child Loop BB0_2 Depth 228 movl $1, %edi29 xorl %edx, %edx30 .p2align 4, 0x9031.LBB0_2: # %polly.loop_header132 # Parent Loop BB0_1 Depth=133 # => This Inner Loop Header: Depth=234 movl %edx, %esi35 andl $1022, %esi # imm = 0x3FE36 orl $1, %esi37 xorps %xmm1, %xmm138 cvtsi2sdl %esi, %xmm139 mulsd %xmm0, %xmm140 cvtsd2ss %xmm1, %xmm141 movss %xmm1, -4(%rcx,%rdi,4)42 movss %xmm1, -4(%rax,%rdi,4)43 leal (%r9,%rdx), %esi44 andl $1023, %esi # imm = 0x3FF45 addl $1, %esi46 xorps %xmm1, %xmm147 cvtsi2sdl %esi, %xmm148 mulsd %xmm0, %xmm149 cvtsd2ss %xmm1, %xmm150 movss %xmm1, (%rcx,%rdi,4)51 movss %xmm1, (%rax,%rdi,4)52 addq $2, %rdi53 addl %r8d, %edx54 cmpq $1537, %rdi # imm = 0x60155 jne .LBB0_256# %bb.3: # %polly.loop_exit357 # in Loop: Header=BB0_1 Depth=158 addq $1, %r959 addq $6144, %rax # imm = 0x180060 addq $6144, %rcx # imm = 0x180061 addl $2, %r8d62 cmpq $1536, %r9 # imm = 0x60063 jne .LBB0_164# %bb.4: # %polly.exiting65 popq %rbp66 .cfi_def_cfa %rsp, 867 retq68.Lfunc_end0:69 .size init_array, .Lfunc_end0-init_array70 .cfi_endproc71 # -- End function72 .globl print_array # -- Begin function print_array73 .p2align 4, 0x9074 .type print_array,@function75print_array: # @print_array76 .cfi_startproc77# %bb.0: # %entry78 pushq %rbp79 .cfi_def_cfa_offset 1680 .cfi_offset %rbp, -1681 movq %rsp, %rbp82 .cfi_def_cfa_register %rbp83 pushq %r1584 pushq %r1485 pushq %r1386 pushq %r1287 pushq %rbx88 pushq %rax89 .cfi_offset %rbx, -5690 .cfi_offset %r12, -4891 .cfi_offset %r13, -4092 .cfi_offset %r14, -3293 .cfi_offset %r15, -2494 leaq C(%rip), %r1395 xorl %eax, %eax96 movl $3435973837, %r12d # imm = 0xCCCCCCCD97 leaq .L.str(%rip), %r1498 .p2align 4, 0x9099.LBB1_1: # %for.cond1.preheader100 # =>This Loop Header: Depth=1101 # Child Loop BB1_2 Depth 2102 movq %rax, -48(%rbp) # 8-byte Spill103 movq stdout(%rip), %rsi104 xorl %ebx, %ebx105 .p2align 4, 0x90106.LBB1_2: # %for.body3107 # Parent Loop BB1_1 Depth=1108 # => This Inner Loop Header: Depth=2109 movl %ebx, %eax110 imulq %r12, %rax111 shrq $38, %rax112 leal (%rax,%rax,4), %r15d113 shll $4, %r15d114 addl $79, %r15d115 movss (%r13,%rbx,4), %xmm0 # xmm0 = mem[0],zero,zero,zero116 cvtss2sd %xmm0, %xmm0117 movb $1, %al118 movq %rsi, %rdi119 movq %r14, %rsi120 callq fprintf121 cmpl %ebx, %r15d122 jne .LBB1_4123# %bb.3: # %if.then124 # in Loop: Header=BB1_2 Depth=2125 movq stdout(%rip), %rsi126 movl $10, %edi127 callq fputc@PLT128.LBB1_4: # %for.inc129 # in Loop: Header=BB1_2 Depth=2130 addq $1, %rbx131 movq stdout(%rip), %rsi132 cmpq $1536, %rbx # imm = 0x600133 jne .LBB1_2134# %bb.5: # %for.end135 # in Loop: Header=BB1_1 Depth=1136 movl $10, %edi137 callq fputc@PLT138 movq -48(%rbp), %rax # 8-byte Reload139 addq $1, %rax140 addq $6144, %r13 # imm = 0x1800141 cmpq $1536, %rax # imm = 0x600142 jne .LBB1_1143# %bb.6: # %for.end12144 addq $8, %rsp145 popq %rbx146 popq %r12147 popq %r13148 popq %r14149 popq %r15150 popq %rbp151 .cfi_def_cfa %rsp, 8152 retq153.Lfunc_end1:154 .size print_array, .Lfunc_end1-print_array155 .cfi_endproc156 # -- End function157 .globl main # -- Begin function main158 .p2align 4, 0x90159 .type main,@function160main: # @main161 .cfi_startproc162# %bb.0: # %entry163 pushq %rbp164 .cfi_def_cfa_offset 16165 .cfi_offset %rbp, -16166 movq %rsp, %rbp167 .cfi_def_cfa_register %rbp168 pushq %r15169 pushq %r14170 pushq %r13171 pushq %r12172 pushq %rbx173 subq $344, %rsp # imm = 0x158174 .cfi_offset %rbx, -56175 .cfi_offset %r12, -48176 .cfi_offset %r13, -40177 .cfi_offset %r14, -32178 .cfi_offset %r15, -24179 callq init_array180 leaq C(%rip), %rdi181 xorl %eax, %eax182 movq %rax, -48(%rbp) # 8-byte Spill183 xorl %esi, %esi184 movl $9437184, %edx # imm = 0x900000185 callq memset@PLT186 movl $64, %eax187 movq %rax, -64(%rbp) # 8-byte Spill188 leaq A(%rip), %rax189 movq %rax, -56(%rbp) # 8-byte Spill190 .p2align 4, 0x90191.LBB2_1: # %polly.loop_header8192 # =>This Loop Header: Depth=1193 # Child Loop BB2_2 Depth 2194 # Child Loop BB2_3 Depth 3195 # Child Loop BB2_4 Depth 4196 # Child Loop BB2_5 Depth 5197 leaq B+240(%rip), %rax198 xorl %edi, %edi199 .p2align 4, 0x90200.LBB2_2: # %polly.loop_header14201 # Parent Loop BB2_1 Depth=1202 # => This Loop Header: Depth=2203 # Child Loop BB2_3 Depth 3204 # Child Loop BB2_4 Depth 4205 # Child Loop BB2_5 Depth 5206 movq %rdi, %rcx207 orq $4, %rcx208 movq %rcx, -80(%rbp) # 8-byte Spill209 movq %rdi, %rcx210 orq $8, %rcx211 movq %rcx, -264(%rbp) # 8-byte Spill212 movq %rdi, %rcx213 orq $12, %rcx214 movq %rcx, -256(%rbp) # 8-byte Spill215 movq %rdi, %rcx216 orq $16, %rcx217 movq %rcx, -248(%rbp) # 8-byte Spill218 movq %rdi, %rcx219 orq $20, %rcx220 movq %rcx, -240(%rbp) # 8-byte Spill221 movq %rdi, %rcx222 orq $24, %rcx223 movq %rcx, -232(%rbp) # 8-byte Spill224 movq %rdi, %rcx225 orq $28, %rcx226 movq %rcx, -224(%rbp) # 8-byte Spill227 movq %rdi, %rcx228 orq $32, %rcx229 movq %rcx, -216(%rbp) # 8-byte Spill230 movq %rdi, %rcx231 orq $36, %rcx232 movq %rcx, -208(%rbp) # 8-byte Spill233 movq %rdi, %rcx234 orq $40, %rcx235 movq %rcx, -200(%rbp) # 8-byte Spill236 movq %rdi, %rcx237 orq $44, %rcx238 movq %rcx, -192(%rbp) # 8-byte Spill239 movq %rdi, %rcx240 orq $48, %rcx241 movq %rcx, -184(%rbp) # 8-byte Spill242 movq %rdi, %rcx243 orq $52, %rcx244 movq %rcx, -176(%rbp) # 8-byte Spill245 movq %rdi, %rcx246 orq $56, %rcx247 movq %rcx, -168(%rbp) # 8-byte Spill248 movq %rdi, %rcx249 orq $60, %rcx250 movq %rcx, -160(%rbp) # 8-byte Spill251 movq -56(%rbp), %rdx # 8-byte Reload252 movq %rax, -136(%rbp) # 8-byte Spill253 movq %rax, -72(%rbp) # 8-byte Spill254 xorl %eax, %eax255 movq %rdi, -272(%rbp) # 8-byte Spill256 .p2align 4, 0x90257.LBB2_3: # %polly.loop_header20258 # Parent Loop BB2_1 Depth=1259 # Parent Loop BB2_2 Depth=2260 # => This Loop Header: Depth=3261 # Child Loop BB2_4 Depth 4262 # Child Loop BB2_5 Depth 5263 movq %rax, -144(%rbp) # 8-byte Spill264 movq %rdx, -152(%rbp) # 8-byte Spill265 movq -48(%rbp), %rax # 8-byte Reload266 .p2align 4, 0x90267.LBB2_4: # %polly.loop_header26268 # Parent Loop BB2_1 Depth=1269 # Parent Loop BB2_2 Depth=2270 # Parent Loop BB2_3 Depth=3271 # => This Loop Header: Depth=4272 # Child Loop BB2_5 Depth 5273 movq %rax, -376(%rbp) # 8-byte Spill274 leaq (%rax,%rax,2), %rax275 shlq $11, %rax276 leaq C(%rip), %rsi277 addq %rsi, %rax278 leaq (%rax,%rdi,4), %rcx279 movq %rcx, -368(%rbp) # 8-byte Spill280 movq -80(%rbp), %rcx # 8-byte Reload281 leaq (%rax,%rcx,4), %rcx282 movq %rcx, -360(%rbp) # 8-byte Spill283 movq -264(%rbp), %rbx # 8-byte Reload284 leaq (%rax,%rbx,4), %rcx285 movq %rcx, -352(%rbp) # 8-byte Spill286 movq -256(%rbp), %r8 # 8-byte Reload287 movq %rdi, %rsi288 leaq (%rax,%r8,4), %rdi289 movq %rdi, -344(%rbp) # 8-byte Spill290 movq -248(%rbp), %rdi # 8-byte Reload291 leaq (%rax,%rdi,4), %rcx292 movq %rcx, -336(%rbp) # 8-byte Spill293 movq -240(%rbp), %r9 # 8-byte Reload294 leaq (%rax,%r9,4), %rcx295 movq %rcx, -328(%rbp) # 8-byte Spill296 movq -232(%rbp), %r10 # 8-byte Reload297 leaq (%rax,%r10,4), %rcx298 movq %rcx, -320(%rbp) # 8-byte Spill299 movq -224(%rbp), %r14 # 8-byte Reload300 leaq (%rax,%r14,4), %rcx301 movq %rcx, -312(%rbp) # 8-byte Spill302 movq -216(%rbp), %r15 # 8-byte Reload303 leaq (%rax,%r15,4), %rcx304 movq %rcx, -304(%rbp) # 8-byte Spill305 movq -208(%rbp), %r12 # 8-byte Reload306 leaq (%rax,%r12,4), %rcx307 movq %rcx, -296(%rbp) # 8-byte Spill308 movq -200(%rbp), %r13 # 8-byte Reload309 leaq (%rax,%r13,4), %rcx310 movq %rcx, -288(%rbp) # 8-byte Spill311 movq -192(%rbp), %r11 # 8-byte Reload312 leaq (%rax,%r11,4), %rcx313 movq %rcx, -280(%rbp) # 8-byte Spill314 movaps (%rax,%rsi,4), %xmm15315 movq -80(%rbp), %rcx # 8-byte Reload316 movaps (%rax,%rcx,4), %xmm14317 movaps (%rax,%rbx,4), %xmm13318 movaps (%rax,%r8,4), %xmm12319 movaps (%rax,%rdi,4), %xmm11320 movaps (%rax,%r9,4), %xmm10321 movaps (%rax,%r10,4), %xmm9322 movaps (%rax,%r14,4), %xmm8323 movaps (%rax,%r15,4), %xmm7324 movaps (%rax,%r12,4), %xmm6325 movaps (%rax,%r13,4), %xmm5326 movaps (%rax,%r11,4), %xmm4327 movq -184(%rbp), %rcx # 8-byte Reload328 movaps (%rax,%rcx,4), %xmm3329 movq -176(%rbp), %rsi # 8-byte Reload330 movaps (%rax,%rsi,4), %xmm0331 movaps %xmm0, -96(%rbp) # 16-byte Spill332 movq -168(%rbp), %rbx # 8-byte Reload333 movaps (%rax,%rbx,4), %xmm0334 movaps %xmm0, -112(%rbp) # 16-byte Spill335 movq -160(%rbp), %rdi # 8-byte Reload336 movaps (%rax,%rdi,4), %xmm0337 movaps %xmm0, -128(%rbp) # 16-byte Spill338 leaq (%rax,%rcx,4), %r8339 leaq (%rax,%rsi,4), %rcx340 leaq (%rax,%rbx,4), %rsi341 leaq (%rax,%rdi,4), %rax342 movq -72(%rbp), %r9 # 8-byte Reload343 movl $0, %r10d344 .p2align 4, 0x90345.LBB2_5: # %vector.ph346 # Parent Loop BB2_1 Depth=1347 # Parent Loop BB2_2 Depth=2348 # Parent Loop BB2_3 Depth=3349 # Parent Loop BB2_4 Depth=4350 # => This Inner Loop Header: Depth=5351 movss (%rdx,%r10,4), %xmm0 # xmm0 = mem[0],zero,zero,zero352 shufps $0, %xmm0, %xmm0 # xmm0 = xmm0[0,0,0,0]353 movaps -240(%r9), %xmm1354 mulps %xmm0, %xmm1355 addps %xmm1, %xmm15356 movaps -224(%r9), %xmm1357 mulps %xmm0, %xmm1358 addps %xmm1, %xmm14359 movaps -208(%r9), %xmm1360 mulps %xmm0, %xmm1361 addps %xmm1, %xmm13362 movaps -192(%r9), %xmm1363 mulps %xmm0, %xmm1364 addps %xmm1, %xmm12365 movaps -176(%r9), %xmm1366 mulps %xmm0, %xmm1367 addps %xmm1, %xmm11368 movaps -160(%r9), %xmm1369 mulps %xmm0, %xmm1370 addps %xmm1, %xmm10371 movaps -144(%r9), %xmm1372 mulps %xmm0, %xmm1373 addps %xmm1, %xmm9374 movaps -128(%r9), %xmm1375 mulps %xmm0, %xmm1376 addps %xmm1, %xmm8377 movaps -112(%r9), %xmm1378 mulps %xmm0, %xmm1379 addps %xmm1, %xmm7380 movaps -96(%r9), %xmm1381 mulps %xmm0, %xmm1382 addps %xmm1, %xmm6383 movaps -80(%r9), %xmm1384 mulps %xmm0, %xmm1385 addps %xmm1, %xmm5386 movaps -64(%r9), %xmm1387 mulps %xmm0, %xmm1388 addps %xmm1, %xmm4389 movaps -48(%r9), %xmm1390 mulps %xmm0, %xmm1391 addps %xmm1, %xmm3392 movaps -32(%r9), %xmm1393 mulps %xmm0, %xmm1394 movaps -96(%rbp), %xmm2 # 16-byte Reload395 addps %xmm1, %xmm2396 movaps %xmm2, -96(%rbp) # 16-byte Spill397 movaps -16(%r9), %xmm1398 mulps %xmm0, %xmm1399 movaps -112(%rbp), %xmm2 # 16-byte Reload400 addps %xmm1, %xmm2401 movaps %xmm2, -112(%rbp) # 16-byte Spill402 mulps (%r9), %xmm0403 movaps -128(%rbp), %xmm1 # 16-byte Reload404 addps %xmm0, %xmm1405 movaps %xmm1, -128(%rbp) # 16-byte Spill406 addq $1, %r10407 addq $6144, %r9 # imm = 0x1800408 cmpq $64, %r10409 jne .LBB2_5410# %bb.6: # %polly.loop_exit34411 # in Loop: Header=BB2_4 Depth=4412 movq -368(%rbp), %rdi # 8-byte Reload413 movaps %xmm15, (%rdi)414 movq -360(%rbp), %rdi # 8-byte Reload415 movaps %xmm14, (%rdi)416 movq -352(%rbp), %rdi # 8-byte Reload417 movaps %xmm13, (%rdi)418 movq -344(%rbp), %rdi # 8-byte Reload419 movaps %xmm12, (%rdi)420 movq -336(%rbp), %rdi # 8-byte Reload421 movaps %xmm11, (%rdi)422 movq -328(%rbp), %rdi # 8-byte Reload423 movaps %xmm10, (%rdi)424 movq -320(%rbp), %rdi # 8-byte Reload425 movaps %xmm9, (%rdi)426 movq -312(%rbp), %rdi # 8-byte Reload427 movaps %xmm8, (%rdi)428 movq -304(%rbp), %rdi # 8-byte Reload429 movaps %xmm7, (%rdi)430 movq -296(%rbp), %rdi # 8-byte Reload431 movaps %xmm6, (%rdi)432 movq -288(%rbp), %rdi # 8-byte Reload433 movaps %xmm5, (%rdi)434 movq -280(%rbp), %rdi # 8-byte Reload435 movaps %xmm4, (%rdi)436 movaps %xmm3, (%r8)437 movaps -96(%rbp), %xmm0 # 16-byte Reload438 movaps %xmm0, (%rcx)439 movaps -112(%rbp), %xmm0 # 16-byte Reload440 movaps %xmm0, (%rsi)441 movaps -128(%rbp), %xmm0 # 16-byte Reload442 movaps %xmm0, (%rax)443 movq -376(%rbp), %rax # 8-byte Reload444 addq $1, %rax445 addq $6144, %rdx # imm = 0x1800446 cmpq -64(%rbp), %rax # 8-byte Folded Reload447 movq -272(%rbp), %rdi # 8-byte Reload448 jne .LBB2_4449# %bb.7: # %polly.loop_exit28450 # in Loop: Header=BB2_3 Depth=3451 movq -144(%rbp), %rax # 8-byte Reload452 addq $64, %rax453 addq $393216, -72(%rbp) # 8-byte Folded Spill454 # imm = 0x60000455 movq -152(%rbp), %rdx # 8-byte Reload456 addq $256, %rdx # imm = 0x100457 cmpq $1536, %rax # imm = 0x600458 jb .LBB2_3459# %bb.8: # %polly.loop_exit22460 # in Loop: Header=BB2_2 Depth=2461 addq $64, %rdi462 movq -136(%rbp), %rax # 8-byte Reload463 addq $256, %rax # imm = 0x100464 cmpq $1536, %rdi # imm = 0x600465 jb .LBB2_2466# %bb.9: # %polly.loop_exit16467 # in Loop: Header=BB2_1 Depth=1468 movq -48(%rbp), %rax # 8-byte Reload469 movq %rax, %rcx470 addq $64, %rcx471 addq $64, -64(%rbp) # 8-byte Folded Spill472 addq $393216, -56(%rbp) # 8-byte Folded Spill473 # imm = 0x60000474 movq %rcx, %rax475 movq %rcx, -48(%rbp) # 8-byte Spill476 cmpq $1536, %rcx # imm = 0x600477 jb .LBB2_1478# %bb.10: # %polly.exiting479 xorl %eax, %eax480 addq $344, %rsp # imm = 0x158481 popq %rbx482 popq %r12483 popq %r13484 popq %r14485 popq %r15486 popq %rbp487 .cfi_def_cfa %rsp, 8488 retq489.Lfunc_end2:490 .size main, .Lfunc_end2-main491 .cfi_endproc492 # -- End function493 .type A,@object # @A494 .comm A,9437184,16495 .type B,@object # @B496 .comm B,9437184,16497 .type .L.str,@object # @.str498 .section .rodata.str1.1,"aMS",@progbits,1499.L.str:500 .asciz "%lf "501 .size .L.str, 5502 503 .type C,@object # @C504 .comm C,9437184,16505 506 .ident "clang version 8.0.0 (trunk 342834) (llvm/trunk 342856)"507 .section ".note.GNU-stack","",@progbits508