1 #include <stdio.h> 2 #include "macro_fpu.h" 3 4 int main() 5 { 6 int i = 0; 7 8 printf("--- BC1F --- if fs == ft then " \ 9 "out = ft else out = fs + ft\n"); 10 for (i = 0; i < MAX_ARR; i++) { 11 TESTINST1s("bc1f", i); 12 TESTINST1d("bc1f", i); 13 } 14 15 printf("--- BC1T --- if fs != ft then " \ 16 "out = fs + ft else out = ft\n"); 17 for (i = 0; i < MAX_ARR; i++) { 18 TESTINST1s("bc1t", i); 19 TESTINST1d("bc1t", i); 20 } 21 22 printf("--- BC1FL --- if fs == ft then " \ 23 "out = ft else out = fs + ft\n"); 24 for (i = 0; i < MAX_ARR; i++) { 25 TESTINST2s("bc1fl", i); 26 TESTINST2d("bc1fl", i); 27 } 28 29 printf("--- BC1TL --- if fs != ft then " \ 30 "out = ft else out = fs + ft\n"); 31 for (i = 0; i < MAX_ARR; i++) { 32 TESTINST2s("bc1tl", i); 33 TESTINST2d("bc1tl", i); 34 } 35 36 printf("--- C.F.S/D --- if false then " \ 37 "out = fs + ft else out = fs\n"); 38 for (i = 0; i < MAX_ARR; i++) { 39 TESTINST_CONDs("c.f.s", i); 40 TESTINST_CONDd("c.f.d", i); 41 } 42 43 printf("--- C.UN.S/D --- if unordered(fs, ft) then " \ 44 "out = fs + ft else out = fs\n"); 45 for (i = 0; i < MAX_ARR; i++) { 46 TESTINST_CONDs("c.un.s", i); 47 TESTINST_CONDd("c.un.d", i); 48 } 49 50 printf("--- C.EQ.S/D --- if fs == ft then " \ 51 "out = fs + ft else out = fs\n"); 52 for (i = 0; i < MAX_ARR; i++) { 53 TESTINST_CONDs("c.eq.s", i); 54 TESTINST_CONDd("c.eq.d", i); 55 } 56 57 printf("--- C.UEQ.S/D --- if (unordered(fs, ft) or (fs == ft)) then " \ 58 "out = fs + ft else out = fs\n"); 59 for (i = 0; i < MAX_ARR; i++) { 60 TESTINST_CONDs("c.ueq.s", i); 61 TESTINST_CONDd("c.ueq.d", i); 62 } 63 64 printf("--- C.OLT.S/D --- if (ordered(fs, ft) or (fs < ft)) then " \ 65 "out = fs + ft else out = fs\n"); 66 for (i = 0; i < MAX_ARR; i++) { 67 TESTINST_CONDs("c.olt.s", i); 68 TESTINST_CONDd("c.olt.d", i); 69 } 70 71 printf("--- C.ULT.S/D --- if (unordered(fs, ft) or (fs < ft)) then " \ 72 "out = fs + ft else out = fs\n"); 73 for (i = 0; i < MAX_ARR; i++) { 74 TESTINST_CONDs("c.ult.s", i); 75 TESTINST_CONDd("c.ult.d", i); 76 } 77 78 printf("--- C.OLE.S/D --- if (ordered(fs, ft) or (fs <= ft)) then " \ 79 "out = fs + ft else out = fs\n"); 80 for (i = 0; i < MAX_ARR; i++) { 81 TESTINST_CONDs("c.ole.s", i); 82 TESTINST_CONDd("c.ole.d", i); 83 } 84 85 printf("--- C.ULE.S/D --- if (unordered(fs, ft) or (fs <= ft)) then " \ 86 "out = fs + ft else out = fs\n"); 87 for (i = 0; i < MAX_ARR; i++) { 88 TESTINST_CONDs("c.ule.s", i); 89 TESTINST_CONDd("c.ule.d", i); 90 } 91 92 printf("--- C.SF.S/D --- if signaling false then " \ 93 "out = fs + ft else out = fs\n"); 94 for (i = 0; i < MAX_ARR; i++) { 95 TESTINST_CONDs("c.sf.s", i); 96 TESTINST_CONDd("c.sf.d", i); 97 } 98 99 printf("--- C.NGLE.S/D --- if not ((fs > ft) or (fs <= ft)) then " \ 100 "out = fs + ft else out = fs\n"); 101 for (i = 0; i < MAX_ARR; i++) { 102 TESTINST_CONDs("c.ngle.s", i); 103 TESTINST_CONDd("c.ngle.d", i); 104 } 105 106 printf("--- C.SEQ.S/D --- if signaling equal then " \ 107 "out = fs + ft else out = fs\n"); 108 for (i = 0; i < MAX_ARR; i++) { 109 TESTINST_CONDs("c.seq.s", i); 110 TESTINST_CONDd("c.seq.d", i); 111 } 112 113 printf("--- C.NGL.S/D --- if not ((fs > ft) or (fs < ft)) then " \ 114 "out = fs + ft else out = fs\n"); 115 for (i = 0; i < MAX_ARR; i++) { 116 TESTINST_CONDs("c.ngl.s", i); 117 TESTINST_CONDd("c.ngl.d", i); 118 } 119 120 printf("--- C.LT.S/D --- if fs < ft then " \ 121 "out = fs + ft else out = fs\n"); 122 for (i = 0; i < MAX_ARR; i++) { 123 TESTINST_CONDs("c.lt.s", i); 124 TESTINST_CONDd("c.lt.d", i); 125 } 126 127 printf("--- C.NGE.S/D --- if not (fs >= ft) then " \ 128 "out = fs + ft else out = fs\n"); 129 for (i = 0; i < MAX_ARR; i++) { 130 TESTINST_CONDs("c.nge.s", i); 131 TESTINST_CONDd("c.nge.d", i); 132 } 133 134 printf("--- C.LE.S/D --- if fs <= ft then " \ 135 "out = fs + ft else out = fs\n"); 136 for (i = 0; i < MAX_ARR; i++) { 137 TESTINST_CONDs("c.le.s", i); 138 TESTINST_CONDd("c.le.d", i); 139 } 140 141 printf("--- C.NGT.S/D --- if not (fs > ft) then " \ 142 "out = fs + ft else out = fs\n"); 143 for (i = 0; i < MAX_ARR; i++) { 144 TESTINST_CONDs("c.ngt.s", i); 145 TESTINST_CONDd("c.ngt.d", i); 146 } 147 return 0; 148 } 149 150