sysy-data/functional_c/asm/94_nested_loops.s

728 lines
10 KiB
ArmAsm
Raw Normal View History

2024-06-14 13:10:27 +08:00
.file "94_nested_loops.sy"
.option pic
.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align 1
.globl loop1
.type loop1, @function
loop1:
ble a0,zero,.L11
addi sp,sp,-80
sd s4,40(sp)
sd s0,72(sp)
sd s1,64(sp)
sd s2,56(sp)
sd s3,48(sp)
sd s5,32(sp)
sd s6,24(sp)
sd s7,16(sp)
sd s8,8(sp)
mv s4,a1
ble a1,zero,.L1
li a5,4096
addiw s1,a1,1
mv s2,a0
lla s6,arr1
li s3,0
addw s1,s1,a0
addi s8,a5,-1216
addi s5,a5,1664
.L3:
addiw t0,s3,3
li s7,0
.L8:
add s0,s6,s7
addiw t2,t0,-3
addw t6,s1,t0
.L7:
addiw t3,t6,-4
mv a5,s0
.L4:
sext.w a4,t3
addiw a3,a4,5
addiw a1,a4,4
addiw a2,a4,6
addiw a6,a4,3
addiw a0,a4,7
addiw t1,a4,2
addiw t4,t3,1
addiw a7,a4,8
addiw t5,a4,9
sw t3,0(a5)
sw t4,4(a5)
sw t4,8(a5)
sw t1,12(a5)
sw t1,16(a5)
sw a6,20(a5)
sw a6,24(a5)
sw a1,28(a5)
sw a1,32(a5)
sw a3,36(a5)
sw a3,40(a5)
sw a2,44(a5)
sw t4,48(a5)
sw t1,52(a5)
sw t1,56(a5)
sw a6,60(a5)
sw a6,64(a5)
sw a1,68(a5)
sw a1,72(a5)
sw a3,76(a5)
sw a3,80(a5)
sw a2,84(a5)
sw a2,88(a5)
sw a0,92(a5)
sw t1,96(a5)
sw a6,100(a5)
sw a6,104(a5)
sw a1,108(a5)
sw a1,112(a5)
sw a3,116(a5)
sw a3,120(a5)
sw a2,124(a5)
addiw a4,a4,10
sw a2,128(a5)
sext.w t3,t4
sw a0,132(a5)
sw a0,136(a5)
sw a7,140(a5)
sw a6,144(a5)
sw a1,148(a5)
sw a1,152(a5)
sw a3,156(a5)
sw a3,160(a5)
sw a2,164(a5)
sw a2,168(a5)
sw a0,172(a5)
sw a0,176(a5)
sw a7,180(a5)
sw a7,184(a5)
sw t5,188(a5)
sw a1,192(a5)
sw a3,196(a5)
sw a3,200(a5)
sw a2,204(a5)
sw a2,208(a5)
sw a0,212(a5)
sw a0,216(a5)
sw a7,220(a5)
sw a7,224(a5)
sw t5,228(a5)
sw t5,232(a5)
sw a4,236(a5)
addi a5,a5,240
bne t6,t3,.L4
addiw t2,t2,1
addi s0,s0,960
addiw t6,t6,1
bne t0,t2,.L7
addiw t0,t0,1
beq s7,s8,.L6
mv s7,s8
j .L8
.L6:
addiw s3,s3,1
beq s2,s3,.L1
add s6,s6,s5
bne s4,s3,.L3
.L1:
ld s0,72(sp)
ld s1,64(sp)
ld s2,56(sp)
ld s3,48(sp)
ld s4,40(sp)
ld s5,32(sp)
ld s6,24(sp)
ld s7,16(sp)
ld s8,8(sp)
addi sp,sp,80
jr ra
.L11:
ret
.size loop1, .-loop1
.align 1
.globl loop2
.type loop2, @function
loop2:
addi sp,sp,-128
li a4,4096
sd s7,64(sp)
li t4,-1
addi s7,a4,1280
li a4,12288
sd s5,80(sp)
sd s6,72(sp)
sd s8,56(sp)
sd s9,48(sp)
sd s0,120(sp)
sd s1,112(sp)
sd s2,104(sp)
sd s3,96(sp)
sd s4,88(sp)
sd s10,40(sp)
sd s11,32(sp)
li t0,0
li a5,0
lla s6,arr2
srli t4,t4,32
li s5,3
addi s8,a4,-1536
li s9,10
.L16:
sext.w a0,a5
addiw s10,a5,2
mv t1,t0
li a6,0
sd a5,8(sp)
.L22:
add s0,s6,t1
li t2,0
addw t5,a6,a0
sd a6,16(sp)
sd a0,24(sp)
.L20:
mv t6,t5
mv s11,t5
mv a5,s0
sd t2,0(sp)
mv t5,t1
.L17:
sext.w t3,t6
addiw a1,t3,2
addiw a3,t3,3
addiw a2,t3,4
addiw a4,t3,5
addiw t2,t3,6
addiw t6,t6,1
and a7,t3,t4
slli s4,a1,32
slli s3,a3,32
slli s2,a2,32
slli s1,a4,32
and a6,t4,t2
slli t1,t6,32
and a0,t4,t6
and a1,t4,a1
and a3,t4,a3
and a2,t4,a2
slli t3,t3,32
slli t2,t2,32
and a4,t4,a4
or a7,a7,t1
or a0,a0,s4
or a1,a1,s3
or a3,a3,s2
or a2,a2,s1
or a6,a6,t3
or a4,a4,t2
sd a7,0(a5)
sd a1,8(a5)
sd a2,16(a5)
sd a6,24(a5)
sd a0,32(a5)
sd a3,40(a5)
sd a4,48(a5)
sd a7,56(a5)
sd a1,64(a5)
sd a2,72(a5)
sd a6,80(a5)
sd a0,88(a5)
sd a3,96(a5)
sd a4,104(a5)
sd a7,112(a5)
sd a1,120(a5)
sd a2,128(a5)
sd a6,136(a5)
sd a0,144(a5)
sd a3,152(a5)
sd a4,160(a5)
sd a7,168(a5)
sd a1,176(a5)
sd a2,184(a5)
sd a6,192(a5)
sd a0,200(a5)
sd a3,208(a5)
sd a4,216(a5)
sd a7,224(a5)
sd a1,232(a5)
sd a2,240(a5)
sd a6,248(a5)
sd a0,256(a5)
sd a3,264(a5)
sd a4,272(a5)
sd a7,280(a5)
sd a1,288(a5)
sd a2,296(a5)
sd a6,304(a5)
sd a0,312(a5)
sd a3,320(a5)
sd a4,328(a5)
sd a7,336(a5)
sd a1,344(a5)
sd a2,352(a5)
sd a6,360(a5)
sd a0,368(a5)
sd a3,376(a5)
sd a4,384(a5)
sd a7,392(a5)
sd a1,400(a5)
sd a2,408(a5)
sd a6,416(a5)
sd a0,424(a5)
sd a3,432(a5)
sd a4,440(a5)
sd a7,448(a5)
sd a1,456(a5)
sd a2,464(a5)
sd a6,472(a5)
sd a0,480(a5)
sd a3,488(a5)
sd a4,496(a5)
sd a7,504(a5)
sd a1,512(a5)
sd a2,520(a5)
sd a6,528(a5)
sd a0,536(a5)
sd a3,544(a5)
sd a4,552(a5)
sd a7,560(a5)
sd a1,568(a5)
sd a2,576(a5)
sd a6,584(a5)
sd a0,592(a5)
sd a3,600(a5)
sd a4,608(a5)
sd a7,616(a5)
sd a1,624(a5)
sd a2,632(a5)
sd a6,640(a5)
sd a0,648(a5)
sd a3,656(a5)
sd a4,664(a5)
sd a7,672(a5)
sd a1,680(a5)
sd a2,688(a5)
sd a6,696(a5)
sd a0,704(a5)
sd a3,712(a5)
sd a4,720(a5)
sd a7,728(a5)
sd a1,736(a5)
sd a2,744(a5)
sd a6,752(a5)
sd a0,760(a5)
sd a3,768(a5)
sd a4,776(a5)
sd a7,784(a5)
sd a1,792(a5)
sd a2,800(a5)
sd a6,808(a5)
sd a0,816(a5)
sd a3,824(a5)
sd a4,832(a5)
sd a7,840(a5)
sd a1,848(a5)
sd a2,856(a5)
sd a6,864(a5)
sd a0,872(a5)
sd a3,880(a5)
sd a4,888(a5)
addi a5,a5,896
bne s10,t6,.L17
ld t2,0(sp)
mv t1,t5
addi s0,s0,1792
addiw t2,t2,1
mv t5,s11
bne t2,s5,.L20
ld a6,16(sp)
ld a0,24(sp)
addiw s10,s10,1
add t1,t1,s7
bne a6,zero,.L19
li a6,1
j .L22
.L19:
ld a5,8(sp)
add t0,t0,s8
addiw a5,a5,1
bne a5,s9,.L16
ld s0,120(sp)
ld s1,112(sp)
ld s2,104(sp)
ld s3,96(sp)
ld s4,88(sp)
ld s5,80(sp)
ld s6,72(sp)
ld s7,64(sp)
ld s8,56(sp)
ld s9,48(sp)
ld s10,40(sp)
ld s11,32(sp)
addi sp,sp,128
jr ra
.size loop2, .-loop2
.align 1
.globl loop3
.type loop3, @function
loop3:
addi sp,sp,-176
sd s0,168(sp)
mv s0,a0
li a0,0
sd s6,120(sp)
sd s7,112(sp)
sd s8,104(sp)
sd s9,96(sp)
sd s10,88(sp)
sd s11,80(sp)
mv s8,a1
mv s9,a2
mv s7,a3
mv t3,a4
mv a1,a5
sd s1,160(sp)
sd s2,152(sp)
sd s3,144(sp)
sd s4,136(sp)
sd s5,128(sp)
li s10,4096
mv t1,a6
li a5,0
li t2,0
li a4,0
li s6,0
lla s11,arr1
li a2,817
li t4,2
li t5,3
li t6,4
li t0,5
mv a3,a0
.L26:
li s4,0
li a6,1
sd a3,32(sp)
sd a5,40(sp)
sd a4,48(sp)
mv a7,s0
.L38:
lla s0,arr2
add s0,s0,a0
li a4,0
li a3,0
li a5,0
add s5,s11,t2
sd s0,24(sp)
sd s4,56(sp)
.L39:
ld s0,24(sp)
mv s4,t2
add s3,s5,a3
add s2,s0,a4
mv t2,s6
li s1,0
sd a5,64(sp)
sd a3,72(sp)
mv s0,a0
mv s6,a4
.L36:
mv a3,s2
mv a4,s3
li a0,0
sd s1,0(sp)
sd s3,8(sp)
sd s2,16(sp)
j .L34
.L45:
lw s1,0(a4)
lw t2,0(a3)
addw a5,a5,s1
addw t2,a5,t2
ble a1,a6,.L32
remw a5,t2,a2
lw s1,8(a4)
lw t2,28(a3)
addw a5,a5,s1
addw t2,a5,t2
beq a1,t4,.L32
remw a5,t2,a2
lw s1,16(a4)
lw t2,56(a3)
addw a5,a5,s1
addw t2,a5,t2
beq a1,t5,.L32
remw a5,t2,a2
lw s1,24(a4)
lw t2,84(a3)
addw a5,a5,s1
addw t2,a5,t2
beq a1,t6,.L32
remw a5,t2,a2
lw s1,32(a4)
lw t2,112(a3)
addw a5,a5,s1
addw t2,a5,t2
mv a5,t2
beq a1,t0,.L32
remw a5,a5,a2
lw s1,40(a4)
lw t2,140(a3)
addw a5,a5,s1
addw t2,a5,t2
.L32:
addiw a0,a0,1
addi a4,a4,48
addi a3,a3,224
bge a0,t3,.L27
.L34:
remw a5,t2,a2
ble t1,a6,.L45
lw s3,0(a4)
lw s2,0(a3)
lw s1,4(a4)
addw a5,a5,s3
addw a5,a5,s2
lw t2,4(a3)
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
ble a1,a6,.L32
remw a5,t2,a2
lw s3,8(a4)
lw s2,28(a3)
lw s1,12(a4)
lw t2,32(a3)
addw a5,a5,s3
addw a5,a5,s2
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
beq a1,t4,.L32
remw a5,t2,a2
lw s3,16(a4)
lw s2,56(a3)
lw s1,20(a4)
lw t2,60(a3)
addw a5,a5,s3
addw a5,a5,s2
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
beq a1,t5,.L32
remw a5,t2,a2
lw s3,24(a4)
lw s2,84(a3)
lw s1,28(a4)
lw t2,88(a3)
addw a5,a5,s3
addw a5,a5,s2
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
beq a1,t6,.L32
remw a5,t2,a2
lw s3,32(a4)
lw s2,112(a3)
lw s1,36(a4)
lw t2,116(a3)
addw a5,a5,s3
addw a5,a5,s2
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
beq a1,t0,.L32
remw a5,t2,a2
lw s3,40(a4)
lw s2,140(a3)
lw s1,44(a4)
lw t2,144(a3)
addiw a0,a0,1
addi a4,a4,48
addi a3,a3,224
addw a5,a5,s3
addw a5,a5,s2
remw a5,a5,a2
addw a5,a5,s1
addw t2,a5,t2
blt a0,t3,.L34
.L27:
ld s1,0(sp)
ld s3,8(sp)
ld s2,16(sp)
addiw s1,s1,1
addi s3,s3,240
addi s2,s2,896
blt s1,s7,.L36
ld a5,64(sp)
ld a3,72(sp)
mv a4,s6
addiw a5,a5,1
mv s6,t2
mv a0,s0
mv t2,s4
addi a3,a3,960
addi a4,a4,1792
blt a5,s9,.L39
ld s4,56(sp)
li a5,4096
addi a4,a5,-1216
addiw s4,s4,1
addi a5,a5,1280
add t2,t2,a4
add a0,s0,a5
blt s4,s8,.L38
ld a3,32(sp)
ld a4,48(sp)
addi a0,s10,1664
ld a5,40(sp)
add t2,a3,a0
li a3,12288
addi a3,a3,-1536
addiw a4,a4,1
mv s0,a7
add a0,a5,a3
bge a4,a7,.L40
li a5,10
beq a4,a5,.L40
mv a5,a0
mv a3,t2
j .L26
.L40:
ld s0,168(sp)
ld s1,160(sp)
ld s2,152(sp)
ld s3,144(sp)
ld s4,136(sp)
ld s5,128(sp)
ld s7,112(sp)
ld s8,104(sp)
ld s9,96(sp)
ld s10,88(sp)
ld s11,80(sp)
mv a0,s6
ld s6,120(sp)
addi sp,sp,176
jr ra
.size loop3, .-loop3
.section .text.startup,"ax",@progbits
.align 1
.globl main
.type main, @function
main:
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)
sd s6,16(sp)
sd s7,8(sp)
sd s8,0(sp)
call getint@plt
mv s7,a0
call getint@plt
mv s8,a0
call getint@plt
mv s0,a0
call getint@plt
mv s1,a0
call getint@plt
mv s2,a0
call getint@plt
mv s3,a0
call getint@plt
mv s4,a0
call getint@plt
mv s5,a0
call getint@plt
mv a1,s8
mv s6,a0
mv a0,s7
call loop1
call loop2
mv a0,s0
ld s0,64(sp)
ld ra,72(sp)
ld s7,8(sp)
ld s8,0(sp)
mv a6,s6
mv a5,s5
ld s6,16(sp)
ld s5,24(sp)
mv a4,s4
mv a3,s3
ld s4,32(sp)
ld s3,40(sp)
mv a2,s2
mv a1,s1
ld s2,48(sp)
ld s1,56(sp)
addi sp,sp,80
tail loop3
.size main, .-main
.globl arr2
.globl arr1
.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
.type arr2, @object
.size arr2, 107520
arr2:
.zero 107520
.type arr1, @object
.size arr1, 57600
arr1:
.zero 57600
.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