aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/94_matrix_mul.sy
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.001@gmail.com>2026-09-15 08:16:43 +0800
committerRichard Qin <richard.qin.001@gmail.com>2026-09-15 08:16:43 +0800
commit4022e5c95210631e4aceb08eaf9d9071aa5aefc4 (patch)
treea5922559836e45fb3459a3d070367912e1035b1a /tests/functional/94_matrix_mul.sy
downloadrcc-master.tar.gz
rcc-master.tar.xz
Set up a git repoHEADmaster
Diffstat (limited to 'tests/functional/94_matrix_mul.sy')
-rw-r--r--tests/functional/94_matrix_mul.sy74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/functional/94_matrix_mul.sy b/tests/functional/94_matrix_mul.sy
new file mode 100644
index 0000000..d9fb24f
--- /dev/null
+++ b/tests/functional/94_matrix_mul.sy
@@ -0,0 +1,74 @@
+int M;
+int L;
+int N;
+
+
+int mul(int a0[],int a1[], int a2[],int b0[],int b1[],int b2[],int c0[],int c1[],int c2[])
+{
+ int i;
+ i=0;
+ c0[0]=a0[0]*b0[0]+a0[1]*b1[0]+a0[2]*b2[0];
+ c0[1]=a0[0]*b0[1]+a0[1]*b1[1]+a0[2]*b2[1];
+ c0[2]=a0[0]*b0[2]+a0[1]*b1[2]+a0[2]*b2[2];
+ c1[0]=a1[0]*b0[0]+a1[1]*b1[0]+a1[2]*b2[0];
+ c1[1]=a1[0]*b0[1]+a1[1]*b1[1]+a1[2]*b2[1];
+ c1[2]=a1[0]*b0[2]+a1[1]*b1[2]+a1[2]*b2[2];
+ c2[0]=a2[0]*b0[0]+a2[1]*b1[0]+a2[2]*b2[0];
+ c2[1]=a2[0]*b0[1]+a2[1]*b1[1]+a2[2]*b2[1];
+ c2[2]=a2[0]*b0[2]+a2[1]*b1[2]+a2[2]*b2[2];
+
+ return 0;
+
+}
+
+int main()
+{
+ N=3;
+ M=3;
+ L=3;
+ int a0[3];int a1[3]; int a2[3];int b0[3];int b1[3];int b2[3];int c0[6];int c1[3];int c2[3];
+ int i;
+ i=0;
+ while(i<M)
+ {
+ a0[i]=i;
+ a1[i]=i;
+ a2[i]=i;
+ b0[i]=i;
+ b1[i]=i;
+ b2[i]=i;
+ i=i+1;
+ }
+ i=mul( a0, a1, a2, b0, b1, b2, c0, c1, c2);
+ int x;
+ while(i<N)
+ {
+ x = c0[i];
+ putint(x);
+ i=i+1;
+ }
+ x = 10;
+ i=0;
+ putch(x);
+ while(i<N)
+ {
+ x = c1[i];
+ putint(x);
+
+ i=i+1;
+ }
+ x = 10;
+ i=0;
+ putch(x);
+ while(i<N)
+ {
+ x = c2[i];
+ putint(x);
+
+ i=i+1;
+ }
+ x = 10;
+ putch(x);
+
+ return 0;
+}