.file "75_max_flow.sy" .option pic .attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .align 1 .type dfs.part.0, @function dfs.part.0: addi sp,sp,-96 sd s4,48(sp) sd s5,40(sp) lla s4,.LANCHOR0 slli s5,a0,2 sd s9,8(sp) add s9,s4,s5 lw a3,0(s9) sd ra,88(sp) sd s0,80(sp) sd s1,72(sp) sd s2,64(sp) sd s3,56(sp) sd s6,32(sp) sd s7,24(sp) sd s8,16(sp) sd s10,0(sp) ble a3,zero,.L11 add a5,s5,a0 slli a5,a5,3 lla s0,.LANCHOR0+40 lla s2,.LANCHOR0+440 mv s8,a0 mv s6,a1 mv s7,a2 add s0,s0,a5 add s2,s2,a5 li s1,1 li s3,1 mv s10,a2 .L10: lw a0,0(s0) slli a5,a0,2 add a4,s4,a5 lw a4,840(a4) bne a4,zero,.L14 lw a4,0(s2) ble a4,zero,.L14 sext.w a2,a4 ble a4,s7,.L7 sext.w a2,s10 .L7: beq a0,s6,.L8 add a5,s4,a5 mv a1,s6 sw s3,840(a5) call dfs.part.0 mv a2,a0 .L8: bgt a2,zero,.L16 lw a3,0(s9) .L14: sext.w a5,s1 addi s0,s0,4 addiw s1,s1,1 addi s2,s2,4 blt a5,a3,.L10 .L11: li a2,0 .L3: ld ra,88(sp) ld s0,80(sp) ld s1,72(sp) ld s2,64(sp) ld s3,56(sp) ld s4,48(sp) ld s5,40(sp) ld s6,32(sp) ld s7,24(sp) ld s8,16(sp) ld s9,8(sp) ld s10,0(sp) mv a0,a2 addi sp,sp,96 jr ra .L16: add a4,s5,s8 addiw s1,s1,-1 slli a4,a4,1 add a4,a4,s1 slli a4,a4,2 add a4,s4,a4 lw a1,40(a4) lw a0,880(a4) lw a3,440(a4) slli a5,a1,2 add a5,a5,a1 slli a5,a5,1 add a5,a5,a0 subw a3,a3,a2 slli a5,a5,2 sw a3,440(a4) add a5,s4,a5 lw a4,440(a5) addw a4,a4,a2 sw a4,440(a5) j .L3 .size dfs.part.0, .-dfs.part.0 .align 1 .globl my_memset .type my_memset, @function my_memset: ble a2,zero,.L17 srli a5,a0,2 addiw a3,a2,-1 li a6,5 sext.w a4,a2 andi a5,a5,1 bleu a3,a6,.L23 li t1,0 beq a5,zero,.L20 sw a1,0(a0) li t1,1 .L20: subw a4,a4,a5 srliw a3,a4,1 slli a5,a5,2 slli a6,a1,32 slli a7,a1,32 srli a6,a6,32 add a5,a0,a5 slli a3,a3,3 or a6,a6,a7 add a3,a3,a5 .L21: sd a6,0(a5) addi a5,a5,8 bne a3,a5,.L21 andi a5,a4,1 beq a5,zero,.L17 andi a5,a4,-2 addw a5,a5,t1 .L19: slli a4,a5,2 add a0,a0,a4 sw a1,0(a0) addiw a4,a5,1 bge a4,a2,.L17 sw a1,4(a0) addiw a4,a5,2 bge a4,a2,.L17 sw a1,8(a0) addiw a4,a5,3 bge a4,a2,.L17 sw a1,12(a0) addiw a4,a5,4 bge a4,a2,.L17 sw a1,16(a0) addiw a5,a5,5 bge a5,a2,.L17 sw a1,20(a0) .L17: ret .L23: li a5,0 j .L19 .size my_memset, .-my_memset .align 1 .globl add_node .type add_node, @function add_node: lla a3,.LANCHOR0 slli a5,a0,2 add a7,a3,a5 lw t1,0(a7) slli a4,a1,2 add a6,a3,a4 lw t3,0(a6) add a5,a5,a0 addiw t4,t1,1 sw t4,0(a7) slli a5,a5,1 add a4,a4,a1 lw a7,0(a6) add a5,a5,t1 slli a4,a4,1 slli a5,a5,2 add a4,a4,t3 add a5,a3,a5 slli a4,a4,2 add a3,a3,a4 sw a1,40(a5) sw a2,440(a5) sw t3,880(a5) addiw a7,a7,1 sw a0,40(a3) sw zero,440(a3) sw t1,880(a3) sw a7,0(a6) ret .size add_node, .-add_node .align 1 .globl dfs .type dfs, @function dfs: beq a0,a1,.L32 lla a4,.LANCHOR0 slli a5,a0,2 add a5,a4,a5 li a4,1 sw a4,840(a5) tail dfs.part.0 .L32: mv a0,a2 ret .size dfs, .-dfs .align 1 .globl max_flow .type max_flow, @function max_flow: beq a0,a1,.L34 addi sp,sp,-48 sd s3,8(sp) slli a5,a0,2 lla s3,.LANCHOR0 sd s0,32(sp) sd s1,24(sp) sd s2,16(sp) sd s4,0(sp) sd ra,40(sp) mv s1,a0 mv s2,a1 li s0,0 add s3,s3,a5 li s4,1 j .L36 .L42: addw s0,a0,s0 .L36: sd zero,.LANCHOR0+840,a5 sd zero,.LANCHOR0+848,a5 sd zero,.LANCHOR0+856,a5 sd zero,.LANCHOR0+864,a5 sd zero,.LANCHOR0+872,a5 li a2,1879048192 mv a1,s2 mv a0,s1 sw s4,840(s3) call dfs.part.0 bne a0,zero,.L42 ld ra,40(sp) mv a0,s0 ld s0,32(sp) ld s1,24(sp) ld s2,16(sp) ld s3,8(sp) ld s4,0(sp) addi sp,sp,48 jr ra .L34: j .L34 .size max_flow, .-max_flow .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-48 sd ra,40(sp) sd s0,32(sp) sd s1,24(sp) sd s2,16(sp) sd s3,8(sp) sd s4,0(sp) call getint@plt mv s0,a0 call getint@plt sd zero,.LANCHOR0,a5 sd zero,.LANCHOR0+8,a5 sd zero,.LANCHOR0+16,a5 sd zero,.LANCHOR0+24,a5 sd zero,.LANCHOR0+32,a5 ble a0,zero,.L44 mv s4,a0 lla s3,.LANCHOR0 .L45: call getint@plt mv s1,a0 call getint@plt mv s2,a0 call getint@plt slli a4,s1,2 add a2,s3,a4 lw a1,0(a2) slli a5,s2,2 add a3,s3,a5 lw a6,0(a3) add a4,a4,s1 addiw a7,a1,1 sw a7,0(a2) slli a4,a4,1 add a5,a5,s2 lw a2,0(a3) add a4,a4,a1 slli a5,a5,1 slli a4,a4,2 add a5,a5,a6 add a4,s3,a4 slli a5,a5,2 add a5,s3,a5 sw s2,40(a4) sw a0,440(a4) sw a6,880(a4) addiw a2,a2,1 sw s1,40(a5) sw zero,440(a5) sw a1,880(a5) sw a2,0(a3) addiw s4,s4,-1 bne s4,zero,.L45 .L44: mv a1,s0 li a0,1 call max_flow call putint@plt li a0,10 call putch@plt ld ra,40(sp) ld s0,32(sp) ld s1,24(sp) ld s2,16(sp) ld s3,8(sp) ld s4,0(sp) li a0,0 addi sp,sp,48 jr ra .size main, .-main .globl used .globl rev .globl cap .globl to .globl size .globl INF .globl _sysy_idx .globl _sysy_us .globl _sysy_s .globl _sysy_m .globl _sysy_h .globl _sysy_l2 .globl _sysy_l1 .globl _sysy_end .globl _sysy_start .section .rodata .align 2 .type INF, @object .size INF, 4 INF: .word 1879048192 .bss .align 3 .set .LANCHOR0,. + 0 .type size, @object .size size, 40 size: .zero 40 .type to, @object .size to, 400 to: .zero 400 .type cap, @object .size cap, 400 cap: .zero 400 .type used, @object .size used, 40 used: .zero 40 .type rev, @object .size rev, 400 rev: .zero 400 .type _sysy_idx, @object .size _sysy_idx, 4 _sysy_idx: .zero 4 .zero 4 .type _sysy_us, @object .size _sysy_us, 4096 _sysy_us: .zero 4096 .type _sysy_s, @object .size _sysy_s, 4096 _sysy_s: .zero 4096 .type _sysy_m, @object .size _sysy_m, 4096 _sysy_m: .zero 4096 .type _sysy_h, @object .size _sysy_h, 4096 _sysy_h: .zero 4096 .type _sysy_l2, @object .size _sysy_l2, 4096 _sysy_l2: .zero 4096 .type _sysy_l1, @object .size _sysy_l1, 4096 _sysy_l1: .zero 4096 .type _sysy_end, @object .size _sysy_end, 16 _sysy_end: .zero 16 .type _sysy_start, @object .size _sysy_start, 16 _sysy_start: .zero 16 .ident "GCC: (Debian 12.2.0-13) 12.2.0" .section .note.GNU-stack,"",@progbits