.text .attribute 4, 16 .attribute 5, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0" .file "17_maximal_clique.sy" .globl is_clique .p2align 1 .type is_clique,@function is_clique: mv a1, a0 li a2, 2 li a0, 1 blt a1, a2, .LBB0_8 slli a0, a1, 32 srli a7, a0, 32 li t0, 1 lui a0, %hi(store) addi a6, a0, %lo(store) addi t2, a6, 8 li t1, 120 lui a0, %hi(graph) addi t3, a0, %lo(graph) j .LBB0_3 .LBB0_2: addi a2, a2, 1 addi t2, t2, 4 beq t0, a7, .LBB0_9 .LBB0_3: mv a0, t0 addi t0, t0, 1 bgeu t0, a7, .LBB0_2 slli a0, a0, 2 add a0, a0, a6 lw a0, 0(a0) mv a3, a7 mv a4, t2 .LBB0_5: lw a5, 0(a4) mul a1, a0, t1 slli a5, a5, 2 add a1, a1, a5 add a1, a1, t3 lw a1, 0(a1) beqz a1, .LBB0_7 addi a3, a3, -1 addi a4, a4, 4 bne a2, a3, .LBB0_5 j .LBB0_2 .LBB0_7: li a0, 0 .LBB0_8: ret .LBB0_9: li a0, 1 ret .Lfunc_end0: .size is_clique, .Lfunc_end0-is_clique .globl maxCliques .p2align 1 .type maxCliques,@function maxCliques: addi sp, sp, -112 sd ra, 104(sp) sd s0, 96(sp) sd s1, 88(sp) sd s2, 80(sp) sd s3, 72(sp) sd s4, 64(sp) sd s5, 56(sp) sd s6, 48(sp) sd s7, 40(sp) sd s8, 32(sp) sd s9, 24(sp) sd s10, 16(sp) sd s11, 8(sp) lui a0, %hi(n) lw a6, %lo(n)(a0) blez a6, .LBB1_15 mv s3, a1 lui a0, %hi(store) addi s6, a0, %lo(store) slli a0, a1, 2 add s4, a0, s6 addiw s2, a1, 1 li a0, 0 blez a1, .LBB1_17 slli a1, s2, 32 srli s7, a1, 32 li a1, 1 addi s5, s6, 8 li s10, 120 lui a2, %hi(graph) addi s11, a2, %lo(graph) lui s8, %hi(n) j .LBB1_5 .LBB1_3: lw a6, %lo(n)(s8) .LBB1_4: addiw a1, s9, 1 bge s9, a6, .LBB1_16 .LBB1_5: mv s9, a1 sw a1, 0(s4) li a1, 2 mv a2, s5 li a3, 1 j .LBB1_7 .LBB1_6: addi a1, a1, 1 addi a2, a2, 4 mv a3, a7 beq a7, s7, .LBB1_11 .LBB1_7: addi a7, a3, 1 bgeu a7, s7, .LBB1_6 slli a3, a3, 2 add a3, a3, s6 lw a5, 0(a3) mv a3, a2 mv s0, s7 .LBB1_9: lw a4, 0(a3) mul s1, a5, s10 slli a4, a4, 2 add a4, a4, s1 add a4, a4, s11 lw a4, 0(a4) beqz a4, .LBB1_4 addi s0, s0, -1 addi a3, a3, 4 bne a1, s0, .LBB1_9 j .LBB1_6 .LBB1_11: sext.w a1, a0 mv s0, s3 blt a1, s3, .LBB1_13 mv s0, a0 .LBB1_13: sext.w s1, s0 li a0, 0 mv a1, s2 call maxCliques blt s1, a0, .LBB1_3 mv a0, s0 j .LBB1_3 .LBB1_15: li a0, 0 .LBB1_16: sext.w a0, a0 ld ra, 104(sp) ld s0, 96(sp) ld s1, 88(sp) ld s2, 80(sp) ld s3, 72(sp) ld s4, 64(sp) ld s5, 56(sp) ld s6, 48(sp) ld s7, 40(sp) ld s8, 32(sp) ld s9, 24(sp) ld s10, 16(sp) ld s11, 8(sp) addi sp, sp, 112 ret .LBB1_17: li a1, 1 lui s5, %hi(n) j .LBB1_19 .LBB1_18: lw a2, %lo(n)(s5) addiw a1, s1, 1 bge s1, a2, .LBB1_16 .LBB1_19: mv s1, a1 sext.w a1, a0 sw s1, 0(s4) mv s0, s3 blt a1, s3, .LBB1_21 mv s0, a0 .LBB1_21: sext.w s6, s0 li a0, 0 mv a1, s2 call maxCliques blt s6, a0, .LBB1_18 mv a0, s0 j .LBB1_18 .Lfunc_end1: .size maxCliques, .Lfunc_end1-maxCliques .globl main .p2align 1 .type main,@function main: addi sp, sp, -2032 sd ra, 2024(sp) sd s0, 2016(sp) sd s1, 2008(sp) sd s2, 2000(sp) lui a0, 1 addiw a0, a0, -1280 sub sp, sp, a0 call getint lui a1, %hi(n) sw a0, %lo(n)(a1) call getint lui s2, %hi(m) sw a0, %lo(m)(s2) blez a0, .LBB2_6 li s1, 0 addi s0, sp, 20 .LBB2_2: call getint sw a0, -4(s0) call getint lwu a1, %lo(m)(s2) sw a0, 0(s0) addi s1, s1, 1 sext.w a0, a1 addi s0, s0, 8 blt s1, a0, .LBB2_2 blez a0, .LBB2_6 addi a0, sp, 20 li a6, 120 lui a3, %hi(graph) addi a3, a3, %lo(graph) li a4, 1 .LBB2_5: lw a5, -4(a0) lw s1, 0(a0) mul s0, a5, a6 slli a2, s1, 2 add a2, a2, s0 add a2, a2, a3 sw a4, 0(a2) mul a2, s1, a6 slli a5, a5, 2 add a2, a2, a5 add a2, a2, a3 sw a4, 0(a2) addi a1, a1, -1 addi a0, a0, 8 bnez a1, .LBB2_5 .LBB2_6: li a1, 1 li a0, 0 call maxCliques call putint li a0, 0 lui a1, 1 addiw a1, a1, -1280 add sp, sp, a1 ld ra, 2024(sp) ld s0, 2016(sp) ld s1, 2008(sp) ld s2, 2000(sp) addi sp, sp, 2032 ret .Lfunc_end2: .size main, .Lfunc_end2-main .type graph,@object .bss .globl graph .p2align 2 graph: .zero 3600 .size graph, 3600 .type store,@object .globl store .p2align 2 store: .zero 120 .size store, 120 .type n,@object .section .sbss,"aw",@nobits .globl n .p2align 2 n: .word 0 .size n, 4 .type m,@object .globl m .p2align 2 m: .word 0 .size m, 4 .type _sysy_start,@object .bss .globl _sysy_start .p2align 3 _sysy_start: .zero 16 .size _sysy_start, 16 .type _sysy_end,@object .globl _sysy_end .p2align 3 _sysy_end: .zero 16 .size _sysy_end, 16 .type _sysy_l1,@object .globl _sysy_l1 .p2align 2 _sysy_l1: .zero 4096 .size _sysy_l1, 4096 .type _sysy_l2,@object .globl _sysy_l2 .p2align 2 _sysy_l2: .zero 4096 .size _sysy_l2, 4096 .type _sysy_h,@object .globl _sysy_h .p2align 2 _sysy_h: .zero 4096 .size _sysy_h, 4096 .type _sysy_m,@object .globl _sysy_m .p2align 2 _sysy_m: .zero 4096 .size _sysy_m, 4096 .type _sysy_s,@object .globl _sysy_s .p2align 2 _sysy_s: .zero 4096 .size _sysy_s, 4096 .type _sysy_us,@object .globl _sysy_us .p2align 2 _sysy_us: .zero 4096 .size _sysy_us, 4096 .type _sysy_idx,@object .section .sbss,"aw",@nobits .globl _sysy_idx .p2align 2 _sysy_idx: .word 0 .size _sysy_idx, 4 .ident "Debian clang version 14.0.6" .section ".note.GNU-stack","",@progbits .addrsig