.file "fft0.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 multiply.part.0, @function multiply.part.0: addi sp,sp,-48 sd s2,16(sp) srliw s2,a1,31 addw s2,s2,a1 sd s0,32(sp) sd s1,24(sp) sd ra,40(sp) sd s3,8(sp) sraiw a5,s2,1 mv s0,a1 mv s1,a0 beq a5,zero,.L2 li a4,1 beq a5,a4,.L22 srliw s3,a5,31 addw s3,s3,a5 mv s2,a5 sraiw a5,s3,1 mv s3,a5 beq a5,zero,.L4 beq a5,a4,.L23 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L6 beq a1,a4,.L24 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L6: srliw a5,s3,31 addw s3,s3,a5 andi s3,s3,1 subw s3,s3,a5 li a5,1 beq s3,a5,.L8 li a4,998244352 slliw a5,a1,1 addiw a4,a4,1 remw a5,a5,a4 .L4: srliw a4,s2,31 addw s2,s2,a4 andi s2,s2,1 subw s2,s2,a4 li a4,1 beq s2,a4,.L9 li a4,998244352 slliw a5,a5,1 addiw a4,a4,1 remw a5,a5,a4 .L2: sraiw a4,s0,31 srliw a4,a4,31 addw s0,a4,s0 andi s0,s0,1 subw s0,s0,a4 li a4,1 bne s0,a4,.L10 li a4,998244352 addw a5,s1,a5 addiw a4,a4,1 remw a5,a5,a4 .L10: ld ra,40(sp) ld s0,32(sp) ld s1,24(sp) ld s2,16(sp) ld s3,8(sp) mv a0,a5 addi sp,sp,48 jr ra .L22: li a4,998244352 addiw a4,a4,1 remw a5,a0,a4 slliw a5,a5,1 remw a5,a5,a4 j .L2 .L23: li a4,998244352 addiw a4,a4,1 remw a5,a0,a4 slliw a5,a5,1 remw a5,a5,a4 j .L4 .L9: li a4,998244352 addiw a4,a4,1 addw a5,s1,a5 remw a5,a5,a4 slliw a5,a5,1 remw a5,a5,a4 j .L2 .L8: li a4,998244352 addiw a4,a4,1 addw a5,s1,a1 remw a5,a5,a4 slliw a5,a5,1 remw a5,a5,a4 j .L4 .L24: li a5,998244352 addiw a5,a5,1 remw a1,a0,a5 slliw a1,a1,1 remw a1,a1,a5 j .L6 .size multiply.part.0, .-multiply.part.0 .align 1 .type fft.part.0, @function fft.part.0: addi sp,sp,-160 sd s0,144(sp) sd s1,136(sp) sd s3,120(sp) sd s5,104(sp) sd ra,152(sp) sd s2,128(sp) sd s4,112(sp) sd s6,96(sp) sd s7,88(sp) sd s8,80(sp) sd s9,72(sp) sd s10,64(sp) sd s11,56(sp) mv s1,a2 mv s0,a0 mv s5,a1 mv s3,a3 ble a2,zero,.L169 slli s6,a1,2 add t1,a0,s6 srai a7,a2,1 mv a1,t1 mv a2,t1 li a6,0 lla a0,temp j .L31 .L171: lw a4,0(a2) addi a2,a2,4 sw a4,0(a5) addiw a5,a6,1 mv s8,a5 beq s1,a5,.L170 .L104: mv a6,a5 .L31: sraiw a5,a6,1 addw a4,a5,a7 slli a4,a4,2 slli a5,a5,2 andi a3,a6,1 add a4,a0,a4 add a5,a0,a5 beq a3,zero,.L171 lw a5,0(a2) addi a2,a2,4 sw a5,0(a4) addiw a5,a6,1 mv s8,a5 bne s1,a5,.L104 .L170: sext.w a6,a6 li a4,7 bleu a6,a4,.L32 andi a4,t1,7 bne a4,zero,.L32 lla a4,temp+4 beq t1,a4,.L32 srliw a3,s1,1 slli a3,a3,3 sext.w a6,s1 lla a4,temp add a3,t1,a3 .L33: ld a2,0(a4) addi a1,a1,8 addi a4,a4,8 sd a2,-8(a1) bne a3,a1,.L33 andi a4,a5,-2 mv a5,a4 beq a4,a6,.L38 slli a4,a4,32 srli a4,a4,30 add a4,a4,a0 lw a4,0(a4) addw a5,s5,a5 slli a5,a5,2 add a5,s0,a5 sw a4,0(a5) .L38: sraiw s8,s8,1 beq s3,zero,.L27 .L161: li a5,1 beq s3,a5,.L42 .L43: srliw s6,s3,31 addw s10,s6,s3 sraiw s10,s10,1 li a3,0 beq s10,zero,.L45 li a5,1 beq s10,a5,.L172 mv a1,s10 mv a0,s3 call multiply.part.0 li a5,998244352 slliw a3,a0,1 addiw a5,a5,1 remw a3,a3,a5 .L45: sraiw s2,s3,31 srliw a4,s2,31 addw s11,a4,s3 andi s11,s11,1 subw s11,s11,a4 li a5,1 bne s11,a5,.L47 li a5,998244352 addw a3,s3,a3 addiw a5,a5,1 remw a3,a3,a5 .L47: li s4,1 beq s8,s4,.L48 mv a2,s8 mv a1,s5 mv a0,s0 call fft.part.0 addw s7,s5,s8 beq s3,s4,.L107 srliw s2,s2,31 addw s11,s2,s3 addw a5,s6,s3 andi s11,s11,1 sraiw s10,a5,1 subw s11,s11,s2 .L50: li a3,0 beq s10,zero,.L51 li a5,1 beq s10,a5,.L173 mv a1,s10 mv a0,s3 call multiply.part.0 li a5,998244352 slliw a3,a0,1 addiw a5,a5,1 remw a3,a3,a5 .L51: li a5,1 bne s11,a5,.L53 li a5,998244352 addw a3,s3,a3 addiw a5,a5,1 remw a3,a3,a5 .L53: li a5,1 beq s8,a5,.L174 .L49: mv a2,s8 mv a1,s7 mv a0,s0 call fft.part.0 li a5,1 ble s1,a5,.L164 sraiw a5,s3,31 srliw a5,a5,31 srliw s10,s3,31 addw s11,a5,s3 addw s10,s10,s3 andi s11,s11,1 sraiw s10,s10,1 subw s11,s11,a5 slli s6,s5,2 .L54: sraiw a5,s10,31 srliw a5,a5,31 srliw a4,s10,31 addw a3,a5,s10 add s5,s8,s5 addw a4,a4,s10 andi a3,a3,1 slli s5,s5,2 li s9,998244352 sraiw a4,a4,1 subw a3,a3,a5 add s6,s0,s6 add s5,s0,s5 li a6,1 li a2,0 addiw s9,s9,1 li s7,1 .L99: lw s2,0(s5) lw s0,0(s6) beq s2,zero,.L56 beq s2,s7,.L57 srliw s4,s2,31 addw s4,s4,s2 sraiw t3,s4,1 mv s4,t3 beq t3,zero,.L175 beq t3,s7,.L176 srliw s1,t3,31 addw a7,s1,t3 sraiw a5,a7,1 mv a7,a5 beq a5,zero,.L64 beq a5,s7,.L177 srliw t1,a5,31 addw t1,t1,a5 sraiw a5,t1,1 mv t1,a5 beq a5,zero,.L66 beq a5,s7,.L178 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L68 beq a1,s7,.L179 mv a0,a6 sw a5,44(sp) sw a7,40(sp) sd a3,32(sp) sd a4,24(sp) sd t3,16(sp) sd a2,8(sp) sd a6,0(sp) call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 lw t1,44(sp) lw a7,40(sp) ld a3,32(sp) ld a4,24(sp) ld t3,16(sp) ld a2,8(sp) ld a6,0(sp) .L68: srliw a0,t1,31 addw a5,t1,a0 andi a5,a5,1 subw a5,a5,a0 li a0,1 beq a5,a0,.L70 slliw a5,a1,1 li a1,998244352 addiw a1,a1,1 remw a5,a5,a1 .L66: srliw a1,a7,31 addw a7,a7,a1 andi a7,a7,1 subw a7,a7,a1 li a1,1 beq a7,a1,.L71 li a1,998244352 slliw a5,a5,1 addiw a1,a1,1 remw a5,a5,a1 .L64: srliw a0,s4,31 addw a1,s4,a0 andi a1,a1,1 subw a1,a1,a0 sraiw t1,s4,31 beq a1,s7,.L72 sraiw a1,s2,31 srliw a0,a1,31 addw a7,a0,s2 andi a7,a7,1 slliw a5,a5,1 subw a7,a7,a0 remw t4,a5,s9 beq a7,s7,.L62 addw a5,s0,t4 remw a5,a5,s9 .L73: addw s1,s1,s4 sw a5,0(s6) sraiw s1,s1,1 beq s1,zero,.L75 li a5,1 beq s1,a5,.L76 srliw a1,a1,29 addw s2,a1,s2 sraiw s2,s2,3 bne s2,zero,.L77 .L79: sraiw a5,s1,31 srliw a5,a5,31 addw s1,a5,s1 andi s1,s1,1 subw s1,s1,a5 li a5,1 beq s1,a5,.L84 .L191: li s1,998244352 slliw s2,s2,1 addiw s1,s1,1 remw s1,s2,s1 .L75: srliw t1,t1,31 addw s4,s4,t1 andi s4,s4,1 subw s4,s4,t1 bne s4,s7,.L85 li a5,998244352 addw s1,a6,s1 addiw a5,a5,1 remw s1,s1,a5 .L85: slliw s1,s1,1 remw s1,s1,s9 bne a7,s7,.L167 addw s1,s1,a6 .L101: remw s1,s1,s9 .L167: subw s0,s0,s1 .L187: addw s0,s0,s9 remw s0,s0,s9 sw s0,0(s5) bne s3,zero,.L180 .L111: li a6,0 .L87: addiw a2,a2,1 addi s6,s6,4 addi s5,s5,4 blt a2,s8,.L99 .L164: ld ra,152(sp) ld s0,144(sp) ld s1,136(sp) ld s2,128(sp) ld s3,120(sp) ld s4,112(sp) ld s5,104(sp) ld s6,96(sp) ld s7,88(sp) ld s8,80(sp) ld s9,72(sp) ld s10,64(sp) ld s11,56(sp) li a0,0 addi sp,sp,160 jr ra .L32: slli a5,a5,2 lla a4,temp add a5,a5,a0 .L39: lw a3,0(a4) addi a4,a4,4 addi a1,a1,4 sw a3,-4(a1) bne a5,a4,.L39 sraiw s8,s8,1 beq s3,zero,.L181 li a5,1 bne s3,a5,.L43 li s11,1 li s10,0 beq s8,s3,.L54 .L42: li a3,1 mv a2,s8 mv a1,s5 mv a0,s0 call fft.part.0 addw s7,s5,s8 li a3,1 j .L49 .L56: remw a5,s0,s9 .L60: sw a5,0(s6) .L74: addw s0,s0,s9 remw s0,s0,s9 sw s0,0(s5) beq s3,zero,.L111 .L180: beq s3,s7,.L87 li a5,0 beq s10,zero,.L88 beq s10,s7,.L182 li a5,0 beq a4,zero,.L90 beq a4,s7,.L183 srliw s0,a4,31 addw s0,s0,a4 sraiw a5,s0,1 mv s0,a5 beq a5,zero,.L92 beq a5,s7,.L184 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L94 beq a1,s7,.L185 mv a0,a6 sd a3,24(sp) sd a4,16(sp) sd a2,8(sp) sd a6,0(sp) call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 ld a3,24(sp) ld a4,16(sp) ld a2,8(sp) ld a6,0(sp) .L94: srliw a0,s0,31 addw a5,s0,a0 andi a5,a5,1 subw a5,a5,a0 li a0,1 beq a5,a0,.L96 slliw a5,a1,1 li a1,998244352 addiw a1,a1,1 remw a5,a5,a1 .L92: sraiw a0,a4,31 srliw a0,a0,31 addw a1,a0,a4 andi a1,a1,1 subw a1,a1,a0 li a0,1 beq a1,a0,.L97 li a1,998244352 slliw a5,a5,1 addiw a1,a1,1 remw a5,a5,a1 .L90: beq a3,s7,.L98 slliw a5,a5,1 remw a5,a5,s9 .L88: beq s11,s7,.L186 addiw a2,a2,1 mv a6,a5 addi s6,s6,4 addi s5,s5,4 blt a2,s8,.L99 j .L164 .L57: addw a5,s0,a6 remw a5,a5,s9 subw s0,s0,a6 sw a5,0(s6) j .L74 .L186: addw a5,a6,a5 addiw a2,a2,1 remw a6,a5,s9 addi s6,s6,4 addi s5,s5,4 blt a2,s8,.L99 j .L164 .L175: sraiw a5,s2,31 srliw a5,a5,31 addw s2,a5,s2 andi s2,s2,1 subw s2,s2,a5 beq s2,s7,.L59 li a5,998244352 addiw a5,a5,1 remw a5,s0,a5 j .L60 .L176: sraiw a1,s2,31 srliw t1,a1,31 addw a5,t1,s2 li a7,998244352 andi a5,a5,1 slliw a0,a6,1 addiw a7,a7,1 subw a5,a5,t1 remw t4,a0,a7 beq a5,s7,.L62 addw a0,s0,t4 mv s1,t4 subw s0,s0,s1 remw a0,a0,a7 sw a0,0(s6) j .L187 .L182: slliw a5,a6,1 remw a5,a5,s9 j .L88 .L62: li a0,998244352 addiw a0,a0,1 addw a5,t4,a6 remw a5,a5,a0 li a7,1 addw a5,a5,s0 remw a5,a5,a0 sw a5,0(s6) beq t3,a7,.L188 srliw s1,s4,31 addw s1,s1,s4 sraiw s1,s1,1 beq s1,zero,.L109 beq s1,a7,.L110 srliw a1,a1,29 addw s2,a1,s2 sraiw s2,s2,3 li a7,1 sraiw t1,s4,31 .L77: li a5,1 beq s2,a5,.L189 srliw a1,s2,31 addw a1,a1,s2 sraiw a1,a1,1 beq a1,zero,.L81 beq a1,a5,.L190 mv a0,a6 sw t1,40(sp) sd a7,32(sp) sd a3,24(sp) sd a4,16(sp) sd a2,8(sp) sd a6,0(sp) call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 lw t1,40(sp) ld a7,32(sp) ld a3,24(sp) ld a4,16(sp) ld a2,8(sp) ld a6,0(sp) .L81: sraiw a0,s2,31 srliw a0,a0,31 addw a5,a0,s2 andi a5,a5,1 subw a5,a5,a0 li a0,1 beq a5,a0,.L83 sraiw a5,s1,31 srliw a5,a5,31 addw s1,a5,s1 li s2,998244352 andi s1,s1,1 slliw a1,a1,1 addiw s2,s2,1 subw s1,s1,a5 li a5,1 remw s2,a1,s2 bne s1,a5,.L191 .L84: li s1,998244352 addiw s1,s1,1 addw a5,a6,s2 remw a5,a5,s1 slliw a5,a5,1 remw s1,a5,s1 j .L75 .L98: li a1,998244352 addiw a1,a1,1 addw a5,a6,a5 remw a5,a5,a1 slliw a5,a5,1 remw a5,a5,a1 j .L88 .L72: li a0,998244352 addiw a0,a0,1 addw a5,a6,a5 remw a5,a5,a0 sraiw a1,s2,31 srliw t4,a1,31 addw a7,t4,s2 andi a7,a7,1 subw a7,a7,t4 slliw a5,a5,1 remw t4,a5,a0 beq a7,s7,.L62 addw a5,s0,t4 remw a5,a5,a0 j .L73 .L59: li a1,998244352 addw a5,s0,a6 addiw a1,a1,1 remw a5,a5,a1 mv s1,a6 remw s1,s1,s9 sw a5,0(s6) j .L167 .L177: li a1,998244352 slliw a5,a6,1 addiw a1,a1,1 remw a5,a5,a1 j .L64 .L183: slliw a5,a6,1 remw a5,a5,s9 j .L90 .L110: li a7,1 sraiw t1,s4,31 .L76: li a5,998244352 slliw s1,a6,1 addiw a5,a5,1 remw s1,s1,a5 j .L75 .L188: slliw s1,a6,1 remw s1,s1,a0 addw s1,s1,a6 j .L101 .L181: li a5,1 li s11,0 li s10,0 beq s8,a5,.L41 .L27: li a3,0 mv a2,s8 mv a1,s5 mv a0,s0 call fft.part.0 addw s7,s5,s8 li a3,0 j .L49 .L71: li a1,998244352 addiw a1,a1,1 addw a5,a6,a5 remw a5,a5,a1 slliw a5,a5,1 remw a5,a5,a1 j .L64 .L97: li a1,998244352 addiw a1,a1,1 addw a5,a6,a5 remw a5,a5,a1 slliw a5,a5,1 remw a5,a5,a1 j .L90 .L172: li a5,998244352 addiw a5,a5,1 remw a3,s3,a5 slliw a3,a3,1 remw a3,a3,a5 j .L45 .L173: li a5,998244352 addiw a5,a5,1 remw a3,s3,a5 slliw a3,a3,1 remw a3,a3,a5 j .L51 .L83: li s2,998244352 addiw s2,s2,1 addw a5,a6,a1 remw a5,a5,s2 slliw a5,a5,1 remw s2,a5,s2 j .L79 .L96: li a0,998244352 addiw a0,a0,1 addw a5,a6,a1 remw a5,a5,a0 slliw a5,a5,1 remw a5,a5,a0 j .L92 .L70: li a0,998244352 addiw a0,a0,1 addw a5,a6,a1 remw a5,a5,a0 slliw a5,a5,1 remw a5,a5,a0 j .L66 .L109: li a7,1 sraiw t1,s4,31 j .L75 .L174: slli s6,s5,2 .L41: li s8,1 j .L54 .L184: slliw a5,a6,1 remw a5,a5,s9 j .L92 .L178: li a1,998244352 slliw a5,a6,1 addiw a1,a1,1 remw a5,a5,a1 j .L66 .L189: li a5,998244352 slliw s2,a6,1 addiw a5,a5,1 remw s2,s2,a5 j .L79 .L169: srliw s8,a2,31 addw s8,s8,a2 sraiw s8,s8,1 bne a3,zero,.L161 j .L27 .L48: addiw s7,s5,1 j .L50 .L185: li a5,998244352 slliw a1,a6,1 addiw a5,a5,1 remw a1,a1,a5 j .L94 .L179: li a5,998244352 slliw a1,a6,1 addiw a5,a5,1 remw a1,a1,a5 j .L68 .L190: li a5,998244352 slliw a1,a6,1 addiw a5,a5,1 remw a1,a1,a5 j .L81 .L107: li a3,1 j .L49 .size fft.part.0, .-fft.part.0 .align 1 .type power.part.0, @function power.part.0: addi sp,sp,-96 sd s3,56(sp) srliw s3,a1,31 addw s3,s3,a1 sd s0,80(sp) sd s1,72(sp) sd s4,48(sp) sd ra,88(sp) sd s2,64(sp) sd s5,40(sp) sd s6,32(sp) sd s7,24(sp) sd s8,16(sp) sd s9,8(sp) sd s10,0(sp) sraiw a5,s3,1 mv s0,a1 mv s4,a0 li s1,1 bne a5,zero,.L412 .L193: sraiw a5,s0,31 srliw a5,a5,31 addw s0,a5,s0 andi s0,s0,1 subw s0,s0,a5 li a5,1 beq s0,a5,.L413 .L330: ld ra,88(sp) ld s0,80(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,s1 ld s1,72(sp) addi sp,sp,96 jr ra .L412: srliw s5,a5,31 addw s5,s5,a5 mv s2,a5 sraiw a5,s5,1 mv s6,a5 sraiw s7,s3,31 bne a5,zero,.L414 .L194: srliw s7,s7,31 addw s2,s2,s7 andi s2,s2,1 subw s2,s2,s7 li s1,1 bne s2,s1,.L193 li s1,0 beq s4,zero,.L330 .L254: li a4,1 beq s4,a4,.L234 sraiw a5,s4,31 srliw a5,a5,31 srliw s1,s4,31 addw s1,s1,s4 addw s2,a5,s4 andi s2,s2,1 sraiw s1,s1,1 subw s2,s2,a5 li s5,1 bne s1,zero,.L270 bne s2,a4,.L330 li s3,1 j .L271 .L413: beq s4,zero,.L325 .L235: li a5,1 beq s4,a5,.L330 sraiw a5,s4,31 srliw a5,a5,31 srliw a1,s4,31 addw s2,a5,s4 addw a1,a1,s4 andi s2,s2,1 sraiw a1,a1,1 subw s2,s2,a5 .L277: beq a1,zero,.L415 .L276: li a5,1 beq a1,a5,.L416 mv a0,s1 call multiply.part.0 mv a5,s1 li s1,998244352 slliw a0,a0,1 addiw s1,s1,1 remw s1,a0,s1 .L286: li a4,1 bne s2,a4,.L330 addw a5,a5,s1 li s1,998244352 addiw s1,s1,1 remw s1,a5,s1 j .L330 .L414: srliw a5,a5,31 addw a5,a5,s6 sraiw a3,a5,1 sraiw s9,s5,31 bne a3,zero,.L417 .L195: srliw s9,s9,31 addw a5,s6,s9 andi a5,a5,1 subw a5,a5,s9 li a4,1 sraiw s7,s2,31 bne a5,a4,.L194 li s1,0 beq s4,zero,.L330 .L232: li s5,1 bne s4,s5,.L230 .L289: srliw s7,s7,31 addw a5,s2,s7 andi a5,a5,1 subw a5,a5,s7 li a4,1 beq a5,a4,.L418 sraiw a5,s0,31 srliw a5,a5,31 addw s1,a5,s0 andi s1,s1,1 subw s1,s1,a5 beq s1,a4,.L235 li s1,1 j .L330 .L417: srliw a5,a5,31 srliw a1,a3,31 addw a1,a1,a3 addw a4,a3,a5 andi a4,a4,1 sraiw a1,a1,1 subw s8,a4,a5 bne a1,zero,.L419 .L196: li a5,1 sraiw s9,s6,31 bne s8,a5,.L195 srliw a5,s9,31 addw a3,s6,a5 andi a3,a3,1 subw a3,a3,a5 beq s4,zero,.L420 li s10,1 bne s4,s8,.L200 sraiw s7,s2,31 beq a3,s4,.L289 srliw a4,s2,31 addw a5,s2,a4 andi a5,a5,1 subw a5,a5,a4 beq a5,s4,.L254 .L324: li s1,1 j .L193 .L325: li s1,0 j .L330 .L419: call power.part.0 mv s10,a0 bne a0,zero,.L197 beq s8,s1,.L421 .L198: srliw s9,s9,31 addw a5,s6,s9 andi a5,a5,1 subw a5,a5,s9 li a4,1 sraiw s7,s2,31 beq a5,a4,.L422 .L229: srliw s7,s7,31 addw s2,s2,s7 andi s2,s2,1 subw s2,s2,s7 li a5,1 li s1,0 bne s2,a5,.L193 beq s4,zero,.L330 .L251: li a5,1 li s1,0 beq s4,a5,.L330 srliw a5,s4,31 sraiw a4,s4,31 .L252: srliw a4,a4,31 addw a5,a5,s4 addw s2,a4,s4 andi s2,s2,1 sraiw s1,a5,1 subw s2,s2,a4 li s5,0 beq s1,zero,.L423 .L270: li a5,1 mv a0,s5 beq s1,a5,.L274 mv a1,s1 call multiply.part.0 .L274: li a5,998244352 slliw a0,a0,1 addiw a5,a5,1 li a4,1 remw s3,a0,a5 beq s2,a4,.L424 beq s3,zero,.L425 .L271: li a5,1 beq s3,a5,.L324 .L269: srliw a5,s3,31 addw a5,a5,s3 sraiw s1,a5,1 mv s2,s1 beq s1,zero,.L278 li a5,1 beq s1,a5,.L426 srliw s5,s1,31 addw s5,s5,s1 sraiw s1,s5,1 mv s5,s1 beq s1,zero,.L280 beq s1,a5,.L427 srliw a1,s1,31 addw a1,a1,s1 sraiw a1,a1,1 beq a1,zero,.L282 beq a1,a5,.L428 mv a0,s3 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L282: srliw a5,s5,31 addw s5,s5,a5 andi s5,s5,1 subw s5,s5,a5 li a5,1 beq s5,a5,.L284 li a5,998244352 slliw s1,a1,1 addiw a5,a5,1 remw s1,s1,a5 .L280: srliw a4,s2,31 addw a5,s2,a4 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L285 li a5,998244352 slliw s1,s1,1 addiw a5,a5,1 remw s1,s1,a5 .L278: sraiw a4,s3,31 srliw a4,a4,31 addw a5,a4,s3 andi a5,a5,1 subw a5,a5,a4 li a4,1 bne a5,a4,.L193 addw a5,s3,s1 li s1,998244352 addiw s1,s1,1 remw s1,a5,s1 j .L193 .L197: li a4,1 beq a0,s1,.L196 srliw s7,a0,31 addw s7,s7,a0 sraiw s1,s7,1 mv s7,s1 beq s1,zero,.L429 beq s1,a4,.L430 srliw s1,s1,31 addw s1,s1,s7 sraiw a5,s1,1 mv s1,a5 beq a5,zero,.L211 beq a5,a4,.L431 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L213 li a5,1 beq a1,a5,.L432 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L213: srliw a4,s1,31 addw a5,s1,a4 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L215 li a4,998244352 slliw a5,a1,1 addiw a4,a4,1 remw a5,a5,a4 .L211: srliw a3,s7,31 addw a4,s7,a3 andi a4,a4,1 subw a4,a4,a3 li a3,1 beq a4,a3,.L216 li a4,998244352 slliw a5,a5,1 addiw a4,a4,1 remw s1,a5,a4 .L210: srliw a4,s10,31 addw a5,a4,s10 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L207 .L217: li a5,1 sraiw s9,s6,31 beq s8,a5,.L433 .L218: beq s1,zero,.L198 .L227: li a5,1 beq s1,a5,.L195 .L231: srliw a5,s1,31 addw a5,a5,s1 sraiw s5,a5,1 mv s3,s5 beq s5,zero,.L236 li a5,1 beq s5,a5,.L434 srliw s5,s5,31 addw s5,s5,s3 sraiw a4,s5,1 mv s5,a4 beq a4,zero,.L238 beq a4,a5,.L435 srliw a1,a4,31 addw a1,a1,a4 sraiw a1,a1,1 beq a1,zero,.L240 beq a1,a5,.L436 mv a0,s1 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L240: srliw a4,s5,31 addw a5,s5,a4 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L242 li a5,998244352 slliw a4,a1,1 addiw a5,a5,1 remw a4,a4,a5 .L238: srliw a3,s3,31 addw a5,s3,a3 andi a5,a5,1 subw a5,a5,a3 li a3,1 beq a5,a3,.L243 li a5,998244352 slliw a4,a4,1 addiw a5,a5,1 remw s5,a4,a5 .L236: srliw a4,s1,31 addw a5,a4,s1 andi a5,a5,1 subw a5,a5,a4 li a4,1 bne a5,a4,.L244 li a5,998244352 addw a4,s1,s5 addiw a5,a5,1 remw s5,a4,a5 .L244: srliw s9,s9,31 addw a5,s6,s9 andi a5,a5,1 subw a5,a5,s9 li a4,1 sraiw s7,s2,31 beq a5,a4,.L437 .L245: beq s5,zero,.L229 .L250: li a5,1 beq s5,a5,.L194 .L253: srliw a4,s5,31 addw a4,a4,s5 sraiw s1,a4,1 mv s3,s1 beq s1,zero,.L438 li a4,1 beq s1,a4,.L439 srliw s1,s1,31 addw s1,s1,s3 sraiw a5,s1,1 mv s1,a5 beq a5,zero,.L261 beq a5,a4,.L440 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L263 beq a1,a4,.L441 mv a0,s5 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L263: srliw a4,s1,31 addw a5,s1,a4 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L265 li a4,998244352 slliw a5,a1,1 addiw a4,a4,1 remw a5,a5,a4 .L261: srliw a3,s3,31 addw a4,s3,a3 andi a4,a4,1 subw a4,a4,a3 li a3,1 beq a4,a3,.L266 li a4,998244352 slliw a5,a5,1 addiw a4,a4,1 remw s3,a5,a4 .L260: sraiw a4,s5,31 srliw a4,a4,31 addw a5,a4,s5 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L257 .L267: srliw s7,s7,31 addw s2,s2,s7 andi s2,s2,1 subw s2,s2,s7 li a5,1 beq s2,a5,.L442 bne s3,zero,.L271 li s1,0 j .L193 .L437: li s1,0 beq s4,zero,.L330 beq s4,a5,.L443 .L230: sraiw a4,s4,31 srliw a4,a4,31 srliw a5,s4,31 addw a5,a5,s4 addw s1,a4,s4 andi s1,s1,1 sraiw a1,a5,1 subw s1,s1,a4 li a5,1 beq a1,zero,.L444 mv a0,s5 beq a1,a5,.L249 call multiply.part.0 .L249: li a5,998244352 slliw a0,a0,1 addiw a5,a5,1 li a4,1 remw a3,a0,a5 beq s1,a4,.L445 mv s5,a3 j .L245 .L433: srliw a2,s9,31 srliw a4,s2,31 addw a3,s6,a2 addw a5,s2,a4 andi a3,a3,1 andi a5,a5,1 subw a3,a3,a2 sraiw s7,s2,31 subw a5,a5,a4 beq s4,zero,.L199 mv s10,s1 beq s4,s8,.L446 .L200: sraiw a4,s4,31 srliw a1,a4,31 srliw a5,s4,31 addw s1,a5,s4 addw a2,a1,s4 andi a2,a2,1 sraiw s1,s1,1 subw s3,a2,a1 beq s1,zero,.L447 li a5,1 mv a0,s10 beq s1,a5,.L226 mv a1,s1 call multiply.part.0 .L226: li a4,998244352 slliw a5,a0,1 addiw a4,a4,1 li a3,1 remw s1,a5,a4 bne s3,a3,.L218 addw a5,s1,s10 remw s1,a5,a4 .L224: bne s1,zero,.L227 li a5,2 remw a5,s6,a5 li a4,1 beq a5,a4,.L228 sraiw s7,s2,31 j .L229 .L426: li a5,998244352 slliw s1,s3,1 addiw a5,a5,1 remw s1,s1,a5 j .L278 .L438: sraiw a4,s5,31 srliw a4,a4,31 addw a5,a4,s5 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L312 srliw s7,s7,31 addw a5,s2,s7 andi a5,a5,1 subw a5,a5,s7 bne a5,a4,.L193 beq s4,zero,.L330 li s3,0 beq s4,a5,.L330 .L258: sraiw a5,s4,31 srliw a5,a5,31 srliw s1,s4,31 addw s1,s1,s4 addw s2,a5,s4 andi s2,s2,1 sraiw s1,s1,1 subw s2,s2,a5 mv s5,s3 bne s1,zero,.L270 li a5,1 bne s2,a5,.L330 .L273: bne s3,zero,.L271 .L272: sraiw a5,s0,31 srliw a5,a5,31 addw s2,a5,s0 andi s2,s2,1 subw s2,s2,a5 li a5,1 bne s2,a5,.L325 mv a1,s1 li s1,0 j .L277 .L312: li s3,0 .L257: li a5,998244352 addw a4,s5,s3 addiw a5,a5,1 remw s3,a4,a5 j .L267 .L285: li a5,998244352 addiw a5,a5,1 addw s1,s3,s1 remw s1,s1,a5 slliw s1,s1,1 remw s1,s1,a5 j .L278 .L442: li s1,0 beq s4,zero,.L330 bne s4,s2,.L258 beq s3,zero,.L330 bne s3,s4,.L269 li s1,2 remw s1,s0,s1 beq s1,s3,.L235 li s1,1 j .L330 .L439: li a4,998244352 slliw a5,s5,1 addiw a4,a4,1 remw s3,a5,a4 j .L260 .L415: mv a5,s1 li s1,0 j .L286 .L427: li a5,998244352 slliw s1,s3,1 addiw a5,a5,1 remw s1,s1,a5 j .L280 .L416: slliw a4,s1,1 mv a5,s1 li s1,998244352 addiw s1,s1,1 remw s1,a4,s1 j .L286 .L266: li a4,998244352 addiw a4,a4,1 addw a5,s5,a5 remw a5,a5,a4 slliw a5,a5,1 remw s3,a5,a4 j .L260 .L284: li a5,998244352 addiw a5,a5,1 addw s1,s3,a1 remw s1,s1,a5 slliw s1,s1,1 remw s1,s1,a5 j .L280 .L434: li a5,998244352 slliw a4,s1,1 addiw a5,a5,1 remw s5,a4,a5 j .L236 .L422: li s1,0 beq s4,zero,.L330 .L228: li a5,1 li s1,0 beq s4,a5,.L330 li s5,0 sraiw s7,s2,31 j .L230 .L440: li a4,998244352 slliw a5,s5,1 addiw a4,a4,1 remw a5,a5,a4 j .L261 .L428: li a5,998244352 slliw a1,s3,1 addiw a5,a5,1 remw a1,a1,a5 j .L282 .L429: srliw a3,a0,31 addw a5,a3,a0 andi a5,a5,1 subw a5,a5,a3 beq a5,a4,.L207 sraiw s9,s5,31 bne s8,a4,.L198 srliw a4,s5,31 srliw s3,s3,31 addw a3,s6,a4 addw a5,s2,s3 andi a3,a3,1 andi a5,a5,1 subw a3,a3,a4 subw a5,a5,s3 beq s4,zero,.L199 li a4,1 li s10,0 bne s4,a4,.L200 .L208: beq a3,s4,.L201 bne a5,s4,.L193 j .L330 .L207: addw s10,s10,s1 li s1,998244352 addiw s1,s1,1 remw s1,s10,s1 j .L217 .L424: addw s5,s5,s3 remw s3,s5,a5 j .L273 .L243: li a5,998244352 addiw a5,a5,1 addw a4,a4,s1 remw a4,a4,a5 slliw a4,a4,1 remw s5,a4,a5 j .L236 .L420: srliw a4,s2,31 addw a5,s2,a4 andi a5,a5,1 subw a5,a5,a4 .L199: li a4,1 li s1,0 beq a3,a4,.L330 bne a5,a4,.L193 j .L330 .L421: srliw a4,s5,31 srliw s3,s3,31 addw a3,s6,a4 addw a5,s2,s3 andi a3,a3,1 andi a5,a5,1 subw a3,a3,a4 subw a5,a5,s3 beq s4,zero,.L199 bne s4,s8,.L200 beq a3,s4,.L201 li s1,0 bne a5,s4,.L193 j .L330 .L265: li a4,998244352 addiw a4,a4,1 addw a5,s5,a1 remw a5,a5,a4 slliw a5,a5,1 remw a5,a5,a4 j .L261 .L430: li a5,998244352 slliw s1,a0,1 addiw a5,a5,1 remw s1,s1,a5 j .L210 .L444: bne s1,a5,.L229 .L248: bne s5,zero,.L250 srliw s7,s7,31 addw a5,s2,s7 andi a5,a5,1 subw a5,a5,s7 li a4,1 beq a5,a4,.L251 li s1,0 j .L193 .L435: li a5,998244352 slliw a4,s1,1 addiw a5,a5,1 remw a4,a4,a5 j .L238 .L418: li s1,0 beq s4,zero,.L330 .L234: sraiw a4,s0,31 srliw a4,a4,31 addw a5,a4,s0 andi a5,a5,1 subw a5,a5,a4 li s1,1 bne a5,s1,.L330 snez s1,s4 j .L330 .L441: li a5,998244352 slliw a1,s5,1 addiw a5,a5,1 remw a1,a1,a5 j .L263 .L443: beq s5,zero,.L330 bne s5,s4,.L253 li a5,2 remw a5,s2,a5 beq a5,s4,.L254 li s1,1 j .L193 .L445: addw a0,a3,s5 remw s5,a0,a5 j .L248 .L216: li a4,998244352 addiw a4,a4,1 addw s1,s10,a5 remw s1,s1,a4 slliw s1,s1,1 remw s1,s1,a4 j .L210 .L423: li a5,1 bne s2,a5,.L330 j .L272 .L242: li a5,998244352 addiw a5,a5,1 addw a4,a1,s1 remw a4,a4,a5 slliw a4,a4,1 remw a4,a4,a5 j .L238 .L447: li a2,1 beq s3,a2,.L448 sraiw s7,s2,31 bne a3,a2,.L229 beq s4,a3,.L330 li a2,2 remw a2,s2,a2 bne a2,a3,.L193 bne s4,zero,.L252 j .L330 .L431: li a4,998244352 slliw a5,a0,1 addiw a4,a4,1 remw a5,a5,a4 j .L211 .L436: li a5,998244352 slliw a1,s1,1 addiw a5,a5,1 remw a1,a1,a5 j .L240 .L446: beq s1,zero,.L208 bne s1,s4,.L231 li a5,2 remw a5,s6,a5 bne a5,s4,.L194 j .L232 .L215: li a4,998244352 addiw a4,a4,1 addw a5,s10,a1 remw a5,a5,a4 slliw a5,a5,1 remw a5,a5,a4 j .L211 .L432: li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 j .L213 .L448: mv s1,s10 j .L224 .L201: li a5,2 remw s2,s2,a5 li a4,1 beq s2,a4,.L325 remw a5,s0,a5 li s1,0 bne a5,a4,.L330 j .L235 .L425: li a5,2 remw a5,s0,a5 bne a5,a4,.L325 mv a1,s1 li s1,0 j .L276 .size power.part.0, .-power.part.0 .align 1 .globl multiply .type multiply, @function multiply: beq a1,zero,.L457 addi sp,sp,-32 sd s0,16(sp) sd s2,0(sp) sd ra,24(sp) sd s1,8(sp) li a5,1 mv s0,a1 mv s2,a0 beq a1,a5,.L468 srliw s1,a1,31 addw s1,s1,a1 sraiw a1,s1,1 mv s1,a1 beq a1,zero,.L452 beq a1,a5,.L469 srliw a1,a1,31 addw a1,a1,s1 sraiw a1,a1,1 beq a1,zero,.L454 beq a1,a5,.L470 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L454: srliw a5,s1,31 addw s1,s1,a5 andi s1,s1,1 subw s1,s1,a5 li a5,1 beq s1,a5,.L456 li a5,998244352 slliw a1,a1,1 addiw a5,a5,1 remw a1,a1,a5 .L452: sraiw a5,s0,31 srliw a5,a5,31 addw s0,a5,s0 andi s0,s0,1 subw s0,s0,a5 li a5,1 bne s0,a5,.L450 li a5,998244352 addw a1,s2,a1 addiw a5,a5,1 ld ra,24(sp) ld s0,16(sp) ld s1,8(sp) ld s2,0(sp) addi sp,sp,32 remw a1,a1,a5 mv a0,a1 jr ra .L468: li a1,998244352 addiw a1,a1,1 remw a1,a0,a1 .L450: ld ra,24(sp) ld s0,16(sp) ld s1,8(sp) ld s2,0(sp) mv a0,a1 addi sp,sp,32 jr ra .L457: li a1,0 mv a0,a1 ret .L469: li a5,998244352 addiw a5,a5,1 remw a1,a0,a5 slliw a1,a1,1 remw a1,a1,a5 j .L452 .L456: li a5,998244352 addiw a5,a5,1 addw a1,s2,a1 remw a1,a1,a5 slliw a1,a1,1 remw a1,a1,a5 j .L452 .L470: li a5,998244352 addiw a5,a5,1 remw a1,a0,a5 slliw a1,a1,1 remw a1,a1,a5 j .L454 .size multiply, .-multiply .align 1 .globl power .type power, @function power: addi sp,sp,-80 sd ra,72(sp) sd s0,64(sp) sd s1,56(sp) sd s2,48(sp) sd s3,40(sp) sd s4,32(sp) sd s5,24(sp) bne a1,zero,.L555 .L509: li s1,1 .L472: ld ra,72(sp) ld s0,64(sp) ld s2,48(sp) ld s3,40(sp) ld s4,32(sp) ld s5,24(sp) mv a0,s1 ld s1,56(sp) addi sp,sp,80 jr ra .L555: srliw a5,a1,31 addw a5,a5,a1 sraiw a3,a5,1 mv s0,a1 mv s3,a0 li s1,1 beq a3,zero,.L473 srliw a5,a5,31 srliw a1,a3,31 addw a1,a1,a3 addw s2,a3,a5 andi s2,s2,1 sraiw a1,a1,1 subw s2,s2,a5 bne a1,zero,.L556 .L474: li s1,1 beq s2,s1,.L557 .L473: sraiw a5,s0,31 srliw a5,a5,31 addw s0,a5,s0 andi s0,s0,1 subw s0,s0,a5 li a5,1 bne s0,a5,.L472 beq s3,zero,.L528 .L493: li a5,1 beq s3,a5,.L472 sraiw a5,s3,31 srliw a5,a5,31 srliw a1,s3,31 addw a4,a5,s3 addw a1,a1,s3 andi a4,a4,1 sraiw a1,a1,1 subw s5,a4,a5 .L501: beq a1,zero,.L558 .L500: li a5,1 beq a1,a5,.L559 mv a0,s1 call multiply.part.0 mv a5,s1 li s1,998244352 slliw a0,a0,1 addiw s1,s1,1 remw s1,a0,s1 .L507: li a3,1 bne s5,a3,.L472 addw a5,a5,s1 li s1,998244352 addiw s1,s1,1 remw s1,a5,s1 j .L472 .L556: call power.part.0 mv s1,a0 bne a0,zero,.L475 li a5,1 bne s2,a5,.L473 beq s3,zero,.L472 beq s3,s2,.L472 sraiw a5,s3,31 srliw a5,a5,31 srliw a1,s3,31 addw a1,a1,s3 addw a4,a5,s3 andi a4,a4,1 sraiw a1,a1,1 subw s5,a4,a5 beq a1,zero,.L560 .L494: li a5,1 mv a0,s1 beq a1,a5,.L498 sd a1,8(sp) call multiply.part.0 ld a1,8(sp) .L498: li a5,998244352 slliw a0,a0,1 addiw a5,a5,1 li a3,1 remw s4,a0,a5 beq s5,a3,.L561 beq s4,zero,.L562 .L496: li a5,1 beq s4,a5,.L527 .L492: srliw s2,s4,31 addw s2,s2,s4 sraiw s1,s2,1 mv s2,s1 beq s1,zero,.L502 li a5,1 beq s1,a5,.L563 srliw a1,s1,31 addw a1,a1,s1 sraiw a1,a1,1 beq a1,zero,.L504 beq a1,a5,.L564 mv a0,s4 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L504: srliw a5,s2,31 addw s2,s2,a5 andi s2,s2,1 subw s2,s2,a5 li a5,1 beq s2,a5,.L506 li a5,998244352 slliw a1,a1,1 addiw a5,a5,1 remw s1,a1,a5 .L502: sraiw a4,s4,31 srliw a4,a4,31 addw a5,a4,s4 andi a5,a5,1 subw a5,a5,a4 li a4,1 bne a5,a4,.L473 addw a5,s4,s1 li s1,998244352 addiw s1,s1,1 remw s1,a5,s1 j .L473 .L565: srliw a3,a0,31 addw a5,a3,a0 andi a5,a5,1 subw a5,a5,a3 beq a5,a4,.L480 li s1,0 bne s2,a4,.L473 beq s3,zero,.L472 beq s3,s2,.L472 .L481: sraiw a5,s3,31 srliw a5,a5,31 srliw a1,s3,31 addw a1,a1,s3 addw a4,a5,s3 andi a4,a4,1 sraiw a1,a1,1 subw s5,a4,a5 mv s1,s4 bne a1,zero,.L494 li a5,1 beq s5,a5,.L497 .L528: li s1,0 j .L472 .L558: mv a5,s1 li s1,0 j .L507 .L557: li s1,0 beq s3,zero,.L472 li s1,1 beq s3,s1,.L472 sraiw a5,s3,31 srliw a5,a5,31 srliw a1,s3,31 addw a1,a1,s3 addw a4,a5,s3 andi a4,a4,1 sraiw a1,a1,1 subw s5,a4,a5 bne a1,zero,.L494 bne s5,s1,.L528 li s4,1 j .L496 .L563: li a5,998244352 slliw s1,s4,1 addiw a5,a5,1 remw s1,s1,a5 j .L502 .L475: li a4,1 beq a0,a4,.L474 srliw s5,a0,31 addw s5,s5,a0 sraiw s4,s5,1 mv s5,s4 beq s4,zero,.L565 beq s4,a4,.L566 srliw s4,s4,31 addw s4,s4,s5 sraiw a5,s4,1 mv s4,a5 beq a5,zero,.L484 beq a5,a4,.L567 srliw a1,a5,31 addw a1,a1,a5 sraiw a1,a1,1 beq a1,zero,.L486 li a5,1 beq a1,a5,.L568 call multiply.part.0 li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 .L486: srliw a4,s4,31 addw a5,s4,a4 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L488 li a4,998244352 slliw a5,a1,1 addiw a4,a4,1 remw a5,a5,a4 .L484: srliw a3,s5,31 addw a4,s5,a3 andi a4,a4,1 subw a4,a4,a3 li a3,1 beq a4,a3,.L489 li a4,998244352 slliw a5,a5,1 addiw a4,a4,1 remw s4,a5,a4 .L483: srliw a4,s1,31 addw a5,a4,s1 andi a5,a5,1 subw a5,a5,a4 li a4,1 beq a5,a4,.L480 .L490: li a5,1 beq s2,a5,.L569 bne s4,zero,.L496 li s1,0 j .L473 .L561: addw a0,s1,s4 remw s4,a0,a5 .L497: bne s4,zero,.L496 .L495: sraiw a5,s0,31 srliw a5,a5,31 addw a4,a5,s0 andi a4,a4,1 subw s5,a4,a5 li a5,1 li s1,0 bne s5,a5,.L472 j .L501 .L480: li a5,998244352 addw s1,s1,s4 addiw a5,a5,1 remw s4,s1,a5 j .L490 .L506: li a5,998244352 addiw a5,a5,1 addw s1,s4,a1 remw s1,s1,a5 slliw s1,s1,1 remw s1,s1,a5 j .L502 .L569: li s1,0 beq s3,zero,.L472 bne s3,s2,.L481 beq s4,zero,.L472 bne s4,s3,.L492 li s1,2 remw s1,s0,s1 bne s1,s4,.L509 j .L493 .L566: li a4,998244352 slliw a5,a0,1 addiw a4,a4,1 remw s4,a5,a4 j .L483 .L564: li a5,998244352 slliw a1,s4,1 addiw a5,a5,1 remw a1,a1,a5 j .L504 .L559: slliw a3,s1,1 mv a5,s1 li s1,998244352 addiw s1,s1,1 remw s1,a3,s1 j .L507 .L489: li a4,998244352 addiw a4,a4,1 addw a5,s1,a5 remw a5,a5,a4 slliw a5,a5,1 remw s4,a5,a4 j .L483 .L567: li a4,998244352 slliw a5,a0,1 addiw a4,a4,1 remw a5,a5,a4 j .L484 .L527: li s1,1 j .L473 .L488: li a4,998244352 addiw a4,a4,1 addw a5,s1,a1 remw a5,a5,a4 slliw a5,a5,1 remw a5,a5,a4 j .L484 .L568: li a5,998244352 slliw a1,a0,1 addiw a5,a5,1 remw a1,a1,a5 j .L486 .L560: bne s5,s2,.L472 j .L495 .L562: li a5,2 remw a5,s0,a5 li s1,0 bne a5,a3,.L472 j .L500 .size power, .-power .align 1 .globl memmove .type memmove, @function memmove: mv a4,a0 mv a5,a1 ble a3,zero,.L577 addiw a1,a3,-1 li a0,8 sext.w t1,a3 slli a6,a5,2 bleu a1,a0,.L572 add a1,a4,a6 or a0,a2,a1 andi a0,a0,7 bne a0,zero,.L572 addi a0,a2,4 beq a1,a0,.L572 srliw a7,t1,1 slli a7,a7,3 mv a0,a2 add a7,a7,a2 .L573: ld a6,0(a0) addi a0,a0,8 addi a1,a1,8 sd a6,-8(a1) bne a0,a7,.L573 andi a1,a3,-2 mv a0,a1 beq t1,a1,.L576 slli a1,a1,32 srli a1,a1,30 add a2,a2,a1 lw a2,0(a2) addw a5,a5,a0 slli a5,a5,2 add a5,a4,a5 sw a2,0(a5) .L576: mv a0,a3 ret .L572: slli a1,a3,2 add a5,a4,a6 add a1,a2,a1 .L575: lw a4,0(a2) addi a2,a2,4 addi a5,a5,4 sw a4,-4(a5) bne a1,a2,.L575 mv a0,a3 ret .L577: li a0,0 ret .size memmove, .-memmove .align 1 .globl fft .type fft, @function fft: li a5,1 beq a2,a5,.L589 tail fft.part.0 .L589: li a0,1 ret .size fft, .-fft .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-144 lla a0,a sd ra,136(sp) sd s0,128(sp) sd s2,112(sp) sd s3,104(sp) sd s1,120(sp) sd s4,96(sp) sd s5,88(sp) sd s6,80(sp) sd s7,72(sp) sd s8,64(sp) sd s9,56(sp) sd s10,48(sp) sd s11,40(sp) call getarray@plt mv s2,a0 lla a0,b call getarray@plt mv s0,a0 li a0,61 call _sysy_starttime@plt addw s2,s2,s0 lla s3,.LANCHOR0 li a5,1 sw a5,0(s3) addiw s2,s2,-1 li s0,1 ble s2,a5,.L782 .L591: slliw s0,s0,1 blt s0,s2,.L591 li a1,998244352 divw a1,a1,s0 sw s0,0(s3) li a3,1 beq a1,zero,.L593 li a0,3 call power.part.0 mv a3,a0 .L593: mv a2,s0 li a1,0 lla a0,a call fft.part.0 lw s0,0(s3) li a1,998244352 li a3,1 divw a1,a1,s0 bne a1,zero,.L592 .L594: li a5,1 beq s0,a5,.L595 mv a2,s0 li a1,0 lla a0,b call fft.part.0 lw s10,0(s3) ble s10,zero,.L596 .L670: lla s11,a slli s8,s10,2 li s9,998244352 mv s1,s11 lla s5,b add s8,s8,s11 li s7,1 addiw s9,s9,1 .L606: lw s0,0(s5) lw s6,0(s1) beq s0,zero,.L597 beq s0,s7,.L780 srliw s4,s0,31 addw s4,s4,s0 sraiw a5,s4,1 mv s4,a5 beq a5,zero,.L599 beq a5,s7,.L783 srliw a4,a5,31 addw a4,a4,a5 sraiw a5,a4,1 mv a4,a5 beq a5,zero,.L601 beq a5,s7,.L784 li a1,2 divw a1,a5,a1 beq a1,zero,.L603 beq a1,s7,.L785 mv a0,s6 sw a5,8(sp) call multiply.part.0 lw a4,8(sp) mv a1,a0 .L603: li a5,2 remw a4,a4,a5 li a3,998244352 slliw a1,a1,1 addiw a3,a3,1 li a2,1 remw a5,a1,a3 beq a4,a2,.L786 .L601: srliw a4,s4,31 addw s4,s4,a4 andi s4,s4,1 slliw a5,a5,1 subw s4,s4,a4 remw a5,a5,s9 bne s4,s7,.L779 addw a5,s6,a5 remw a5,a5,s9 .L779: slliw a5,a5,1 remw a5,a5,s9 .L599: srliw a3,s0,31 addw a4,a3,s0 andi a4,a4,1 subw a4,a4,a3 mv s0,a5 beq a4,s7,.L787 .L597: sw s0,0(s1) addi s1,s1,4 addi s5,s5,4 bne s1,s8,.L606 li a1,-998244352 li a5,998244352 li a3,1 divw a1,a1,s10 addw a1,a1,a5 beq a1,zero,.L609 li a0,3 call power.part.0 mv a3,a0 .L609: li a5,1 beq s10,a5,.L610 .L608: mv a2,s10 li a1,0 lla a0,a call fft.part.0 lw s3,0(s3) lla s11,a ble s3,zero,.L662 .L611: slli s6,s3,2 li s5,62390272 li s4,998244352 lla s8,a add s6,s6,s11 addi s5,s5,-1 li s9,1 addiw s4,s4,1 sraiw s7,s3,1 .L661: mv a1,s5 mv a0,s3 call power.part.0 mv s0,a0 lw s10,0(s8) beq a0,zero,.L612 li a5,1 beq a0,a5,.L788 li a1,2 divw a1,a0,a1 beq a1,zero,.L616 beq a1,a5,.L789 call multiply.part.0 mv a1,a0 .L616: li a4,2 remw a4,s0,a4 li a5,998244352 slliw a1,a1,1 addiw a5,a5,1 li a3,1 remw a2,a1,a5 beq a4,a3,.L790 mv s0,a2 .L618: li a5,1 bne s3,a5,.L615 beq s0,zero,.L622 bne s0,s3,.L781 .L614: remw s0,s10,s4 .L622: sw s0,0(s8) addi s8,s8,4 bne s8,s6,.L661 .L662: li a0,80 call _sysy_stoptime@plt mv a0,s2 lla a1,a call putarray@plt ld ra,136(sp) ld s0,128(sp) ld s1,120(sp) ld s2,112(sp) ld s3,104(sp) ld s4,96(sp) ld s5,88(sp) ld s6,80(sp) ld s7,72(sp) ld s8,64(sp) ld s9,56(sp) ld s10,48(sp) ld s11,40(sp) li a0,0 addi sp,sp,144 jr ra .L787: addw s6,s6,a5 .L780: remw s0,s6,s9 j .L597 .L612: beq s3,s9,.L622 .L615: mv a0,s0 mv a1,s3 call multiply.part.0 mv s0,a0 beq a0,zero,.L620 li a5,1 beq a0,a5,.L620 .L781: srliw s1,s0,31 addw s1,s1,s0 sraiw a4,s1,1 mv s11,s0 mv s1,a4 li a5,0 beq a4,zero,.L623 li a5,1 beq a4,a5,.L679 li a1,2 divw a1,a4,a1 beq a1,zero,.L624 beq a1,a5,.L680 mv a0,s0 call multiply.part.0 mv a1,a0 .L624: li a5,2 remw s1,s1,a5 li a4,998244352 slliw a1,a1,1 addiw a4,a4,1 li a3,1 remw a5,a1,a4 bne s1,a3,.L623 addw a1,a5,s0 remw a5,a1,a4 .L623: srliw a2,s11,31 addw a4,a2,s11 li a3,998244352 andi a4,a4,1 slliw a5,a5,1 addiw a3,a3,1 subw a4,a4,a2 li a2,1 remw s0,a5,a3 bne a4,a2,.L625 addw a5,s0,s11 remw s0,a5,a3 .L625: li a5,1 bne s3,a5,.L620 beq s0,zero,.L622 beq s0,s3,.L614 mv s1,s0 j .L629 .L783: li a4,998244352 addiw a4,a4,1 remw a5,s6,a4 slliw a5,a5,1 remw a5,a5,a4 j .L599 .L786: addw a1,s6,a5 remw a5,a1,a3 j .L601 .L620: mv a1,s3 mv a0,s0 call multiply.part.0 mv s1,a0 beq a0,zero,.L627 li a5,1 beq a0,a5,.L791 .L629: srliw s0,s1,31 addw s0,s0,s1 sraiw a4,s0,1 mv s0,a4 li a5,0 beq a4,zero,.L630 mv a5,s1 beq a4,s9,.L630 srliw a1,a4,31 addw a1,a1,a4 sraiw a1,a1,1 beq a1,zero,.L631 beq a1,s9,.L683 mv a0,s1 call multiply.part.0 mv a1,a0 .L631: li a4,998244352 slliw a1,a1,1 addiw a4,a4,1 remw a1,a1,a4 srliw a5,s0,31 addw s0,s0,a5 andi s0,s0,1 subw s0,s0,a5 li a3,1 sext.w a5,a1 bne s0,a3,.L630 addw a1,s1,a1 remw a5,a1,a4 .L630: srliw a3,s1,31 addw a4,a3,s1 andi a4,a4,1 slliw a5,a5,1 subw a4,a4,a3 remw s0,a5,s4 bne a4,s9,.L632 addw a5,s1,s0 remw s0,a5,s4 .L632: li a5,1 beq s3,a5,.L633 mv s1,s0 .L627: andi a2,s3,1 srai a5,s3,1 sraiw a4,s3,1 mv s11,a2 beq a5,zero,.L792 li a3,1 beq a5,a3,.L793 mv a1,a5 mv a0,s1 sd a2,24(sp) sw a4,16(sp) sd a5,8(sp) call multiply.part.0 li a3,998244352 slliw s0,a0,1 addiw a3,a3,1 ld a5,8(sp) lw a4,16(sp) ld a2,24(sp) remw s0,s0,a3 bne s11,zero,.L637 beq s0,zero,.L639 .L638: li a3,1 beq s0,a3,.L794 li a5,2 divw s11,s0,a5 beq s11,zero,.L795 .L641: beq s11,s9,.L796 srliw s1,s11,31 addw s1,s1,s11 sraiw a5,s1,1 mv s1,a5 li a4,0 beq a5,zero,.L646 mv a4,s0 beq a5,s9,.L646 li a1,2 divw a1,a5,a1 beq a1,zero,.L647 beq a1,s9,.L688 mv a0,s0 call multiply.part.0 mv a1,a0 .L647: li a5,2 remw s1,s1,a5 li a5,998244352 slliw a1,a1,1 addiw a5,a5,1 li a3,1 remw a4,a1,a5 bne s1,a3,.L646 addw a1,s0,a4 remw a4,a1,a5 .L646: srliw a3,s11,31 addw a5,a3,s11 andi a5,a5,1 slliw a4,a4,1 subw a5,a5,a3 remw a4,a4,s4 beq a5,s9,.L648 slliw a4,a4,1 remw s11,a4,s4 .L645: srliw a4,s0,31 addw a5,a4,s0 andi a5,a5,1 subw a5,a5,a4 beq a5,s9,.L642 .L649: beq s3,s9,.L650 mv a4,s7 .L643: sext.w s0,a4 beq s0,zero,.L622 mv a5,s0 andi a2,s3,1 .L663: li a4,1 mv s0,s11 beq a5,a4,.L651 .L639: srai a1,a5,1 li a4,1 beq a1,a4,.L690 mv a0,s0 sd a2,16(sp) sd a5,8(sp) call multiply.part.0 ld a5,8(sp) ld a2,16(sp) mv a4,a0 .L652: li a3,998244352 slliw a4,a4,1 addiw a3,a3,1 andi a5,a5,1 remw s11,a4,a3 beq a5,zero,.L651 addw a4,s0,s11 remw s11,a4,a3 .L651: li a4,998244352 slliw a5,s11,1 addiw a4,a4,1 remw s11,a5,a4 bne a2,zero,.L797 .L650: beq s11,zero,.L694 beq s11,s9,.L614 srliw s1,s11,31 addw s1,s1,s11 sraiw s0,s1,1 mv s1,s0 beq s0,zero,.L654 beq s0,s9,.L798 srliw s0,s0,31 addw s0,s0,s1 sraiw a4,s0,1 mv s0,a4 beq a4,zero,.L656 beq a4,s9,.L799 li a1,2 divw a1,a4,a1 beq a1,zero,.L658 beq a1,s9,.L800 mv a0,s10 call multiply.part.0 mv a1,a0 .L658: li a5,2 remw s0,s0,a5 li a5,998244352 slliw a1,a1,1 addiw a5,a5,1 li a3,1 remw a4,a1,a5 bne s0,a3,.L656 addw a1,s10,a4 remw a4,a1,a5 .L656: srliw a5,s1,31 addw s1,s1,a5 andi s1,s1,1 slliw a4,a4,1 subw s1,s1,a5 remw a4,a4,s4 beq s1,s9,.L660 slliw a4,a4,1 remw s0,a4,s4 .L654: srliw a4,s11,31 addw a5,a4,s11 andi a5,a5,1 subw a5,a5,a4 bne a5,s9,.L622 addw s0,s10,s0 addi s8,s8,4 remw s0,s0,s4 sw s0,-4(s8) bne s8,s6,.L661 j .L662 .L782: li a1,998244352 li a0,3 call power.part.0 li a1,998244352 .L592: li a0,3 call power.part.0 mv a3,a0 j .L594 .L784: li a5,998244352 addiw a5,a5,1 remw a5,s6,a5 j .L601 .L610: lw s3,0(s3) j .L611 .L595: lw s10,0(s3) j .L670 .L795: remw a5,s0,a5 bne a5,a3,.L643 .L642: addw s0,s0,s11 remw s11,s0,s4 j .L649 .L797: addw a5,s0,s11 remw s11,a5,a4 j .L650 .L789: li a1,998244352 addiw a1,a1,1 remw a1,a0,a1 j .L616 .L637: li a1,998244352 addw a3,s0,s1 addiw a1,a1,1 remw s0,a3,a1 mv a3,s0 beq s0,zero,.L801 li s11,1 li a1,1 beq s0,s11,.L663 li a5,2 divw s11,a3,a5 bne s11,zero,.L641 remw a3,a3,a5 bne a3,a1,.L643 j .L642 .L796: li a4,998244352 slliw a5,s0,1 addiw a4,a4,1 remw s11,a5,a4 j .L645 .L798: li a5,998244352 addiw a5,a5,1 remw s0,s10,a5 slliw s0,s0,1 remw s0,s0,a5 j .L654 .L648: addw a5,s0,a4 remw a5,a5,s4 slliw a5,a5,1 remw s11,a5,s4 j .L645 .L660: addw s0,s10,a4 remw s0,s0,s4 slliw s0,s0,1 remw s0,s0,s4 j .L654 .L799: li a4,998244352 addiw a4,a4,1 remw a4,s10,a4 j .L656 .L633: beq s0,zero,.L622 beq s0,s3,.L614 li a5,2 divw s11,s0,a5 bne s11,zero,.L641 remw a5,s0,a5 beq a5,s3,.L642 .L694: li s0,0 j .L622 .L792: beq a2,zero,.L694 beq s1,zero,.L694 li a5,1 beq s1,a5,.L614 li a4,2 divw s0,s1,a4 beq s0,zero,.L802 mv s11,s0 mv s0,s1 j .L641 .L679: mv a5,s0 j .L623 .L690: mv a4,s0 j .L652 .L683: mv a1,s1 j .L631 .L688: mv a1,s0 j .L647 .L785: li a1,998244352 addiw a1,a1,1 remw a1,s6,a1 j .L603 .L800: li a1,998244352 addiw a1,a1,1 remw a1,s10,a1 j .L658 .L790: addw a1,s0,a2 remw s0,a1,a5 j .L618 .L793: li a3,998244352 slliw s0,s1,1 addiw a3,a3,1 remw s0,s0,a3 bne a2,zero,.L637 bne s0,zero,.L638 j .L622 .L596: li a5,-998244352 divw a5,a5,s10 li a1,998244352 li a0,3 addw a1,a5,a1 call power.part.0 mv a3,a0 j .L608 .L680: mv a1,s0 j .L624 .L794: li s11,1 j .L663 .L791: bne s3,a0,.L627 remw s0,s10,s4 j .L622 .L788: bne s3,a0,.L615 remw s0,s10,s4 j .L622 .L801: li a4,1 bne a5,a4,.L639 j .L622 .L802: remw a4,s1,a4 bne a4,a5,.L622 li s11,0 mv s0,s1 j .L642 .size main, .-main .globl c .globl b .globl a .globl temp .globl d .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 .bss .align 3 .set .LANCHOR0,. + 0 .type d, @object .size d, 4 d: .zero 4 .zero 4 .type c, @object .size c, 8388608 c: .zero 8388608 .type b, @object .size b, 8388608 b: .zero 8388608 .type a, @object .size a, 8388608 a: .zero 8388608 .type temp, @object .size temp, 8388608 temp: .zero 8388608 .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