This is the result of running a testsuite to check GCC's generation of PDP-10 instructions. Every test case consists of one C file and some assembly code files which should match the code generated for each processor. The C file contains a few functions which usually compile into one instruction + a POPJ each. ERROR indicates a compiler error or crash. FAIL means that the generated assembly code file didn't match the provided assembly code file. Notes appear below. Testcase 166 KA10 KI10 KL10 "2" Note ADD-pointer FAIL FAIL FAIL FAIL FAIL [1] ADD ok ok ok ok ok ADJBP n/a n/a n/a ok ok AND ok ok ok ok ok ANDCA ok ok ok ok ok ANDCB ok ok ok ok ok ANDCM ok ok ok ok ok AOJ ok ok ok ok ok AOS ok ok ok ok ok ASH ok ok ok ok ok ASHC ok ok ok ok ok BLT ok ok ok FAIL FAIL [2] CAI ok ok ok ok ok CAM ok ok ok ok ok DADD n/a n/a n/a ok ok DDFIX n/a n/a n/a n/a ok DDFLTR n/a n/a n/a n/a ok DFAD n/a n/a ok ok ok DFDV n/a n/a ok ok ok DFIX n/a n/a n/a n/a ok DFLTR n/a n/a n/a n/a ok DFMP n/a n/a ok ok ok DFSB n/a n/a ok ok ok DFSC n/a n/a n/a n/a ok DGFLTR n/a n/a n/a ok ok DMOVE n/a n/a ok ok ok DMOVN n/a n/a ok ok ok DPB ok ok ok ok ok DSQRT n/a n/a n/a n/a ERROR [3] DSUB n/a n/a n/a ok ok EQV ok ok ok ok ok EXCH ok ok ok ok ok FADR ok ok ok ok ok FDVR ok ok ok ok ok FFS n/a n/a n/a n/a ok FIX n/a n/a ok ok ok FLTR n/a n/a ok ok ok FMPR ok ok ok ok ok FSBR ok ok ok ok ok FSC ok ok ok ok ok GDBLE n/a n/a n/a ok ok GDFIX n/a n/a n/a ok ok GFAD n/a n/a n/a ok ok GFDV n/a n/a n/a ok ok GFIX n/a n/a n/a ok ok GFLTR n/a n/a n/a ok ok GFMP n/a n/a n/a ok ok GFSB n/a n/a n/a ok ok GFSC n/a n/a n/a ok ok GSNGL n/a n/a n/a ok ok GSQRT n/a n/a n/a n/a ERROR [3] IBP ok ok ok ok ok IDIV ok ok ok ok ok IDPB FAIL FAIL FAIL FAIL FAIL [4] ILDB FAIL FAIL FAIL FAIL FAIL [4] ILDBE FAIL FAIL FAIL FAIL FAIL [4] IMUL ok ok ok ok ok IOR ok ok ok ok ok JFFO n/a ok ok ok ok JRST ok ok ok ok ok LDB ok ok ok ok ok LDBE ok ok ok ok ok [5] LSH ok ok ok ok ok LSHC ok ok ok ok ok MOVE ok ok ok ok ok MOVM ok ok ok ok ok MOVN ok ok ok ok ok MOVS ok ok ok ok ok MUL ok ok ok ok ok ORCA ok ok ok ok ok ORCB ok ok ok ok ok ORCM ok ok ok ok ok PUSHJ ok ok ok ok ok ROT ok ok ok ok ok ROTC ok ok ok ok ok SETCA ok ok ok ok ok SETCM ok ok ok ok ok SETOM ok ok ok ok ok SETZM ok ok ok ok ok SKIP ok ok ok ok ok SOJ ok ok ok ok ok SOS ok ok ok ok ok SQRT n/a n/a n/a n/a ERROR [3] SUB ok ok ok ok ok XBLT n/a n/a n/a FAIL FAIL [1] XOR ok ok ok ok ok Notes [1] The ADD to word pointer and XBLT test cases fail because GCC generates suboptimal (though correct) code. [2] BLT fails for KL10 and "2" (which use extended addressing by default), because GCC doesn't recognize the switch to use local addressing in certain circumstances. Thus XBLT is generated, which doesn't match the BLT test case. [3] The square root instructions fail because, for some reason, GCC thinks square root instructions can only be generated for machines with IEEE floating point format. [4] The pre-incrementing byte instructions fail because GCC doesn't recognize the opportunity to generate them. IBP + a non-incrementing instruction is generated instead. [5] A true LDBE is only generated for the "2". LDB + TRNE + ORCMI is generated for other processors.