riscv-gnu-toolchain icon indicating copy to clipboard operation
riscv-gnu-toolchain copied to clipboard

[xxlcz] addibne Generation in Matrix Multiplication Code

Open bigmagic123 opened this issue 1 month ago • 0 comments

addibne.c

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
uint32_t test_1[16];
uint16_t test_2[16];
uint16_t test_3[16];
void matrix_mul_matrix_xxx(uint32_t N, uint32_t* C, uint16_t* A, uint16_t* B) {
    uint32_t i, j, k;
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            C[i * N + j] = 0;
            for (k = 0; k < N; k++) {
                C[i * N + j] += (int)A[i * N + k] * (int)B[k * N + j];
            }
        }
    }
}
int main() {}

Compilation Command:

riscv64-unknown-elf-gcc -march=rv32imac_xxlcz -mabi=ilp32 -Os addibne.c -o addibne -nostartfiles

riscv64-unknown-elf-objdump -rd addibne

addibne:     file format elf32-littleriscv


Disassembly of section .text:

000100b4 <main>:
   100b4:       4501                    li      a0,0
   100b6:       8082                    ret

000100b8 <matrix_mul_matrix_xxx>:
   100b8:       4e01                    li      t3,0
   100ba:       00151393                slli    t2,a0,0x1
   100be:       4801                    li      a6,0
   100c0:       00ae1563                bne     t3,a0,100ca <matrix_mul_matrix_xxx+0x12>
   100c4:       8082                    ret
   100c6:       88ba                    mv      a7,a4
   100c8:       a811                    j       100dc <matrix_mul_matrix_xxx+0x24>
   100ca:       1141                    addi    sp,sp,-16
   100cc:       c622                    sw      s0,12(sp)
   100ce:       00281793                slli    a5,a6,0x2
   100d2:       00181f13                slli    t5,a6,0x1
   100d6:       97ae                    add     a5,a5,a1
   100d8:       9f32                    add     t5,t5,a2
   100da:       4881                    li      a7,0
   100dc:       00189713                slli    a4,a7,0x1
   100e0:       9736                    add     a4,a4,a3
   100e2:       82fa                    mv      t0,t5
   100e4:       4e81                    li      t4,0
   100e6:       4301                    li      t1,0
   100e8:       00075403                lhu     s0,0(a4)
   100ec:       30129ffb                xl.lhu  t6,2(t0)
   100f0:       971e                    add     a4,a4,t2
   100f2:       028f8fb3                mul     t6,t6,s0
   100f6:       9efe                    add     t4,t4,t6
   100f8:       8f9a                    mv      t6,t1
   100fa:       9f75737b                xl.addibne      t1,a0,0,100e8 <matrix_mul_matrix_xxx+0x30>
   100fe:       01d7a023                sw      t4,0(a5)
   10102:       00188713                addi    a4,a7,1
   10106:       0791                    addi    a5,a5,4
   10108:       fbf89fe3                bne     a7,t6,100c6 <matrix_mul_matrix_xxx+0xe>
   1010c:       0e05                    addi    t3,t3,1
   1010e:       982a                    add     a6,a6,a0
   10110:       faae1fe3                bne     t3,a0,100ce <matrix_mul_matrix_xxx+0x16>
   10114:       4432                    lw      s0,12(sp)
   10116:       0141                    addi    sp,sp,16
   10118:       8082                    ret

bigmagic123 avatar Oct 20 '25 03:10 bigmagic123