         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.align	2
				.global	main
		main:
		.LFB185:
		.LVL0:
				mov	x16, 6768
				sub	sp, sp, x16
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				stp	d8, d9, [sp, 80]
				adrp	x2, :got:__stack_chk_guard
				ldr	x2, [x2, #:got_lo12:__stack_chk_guard]
				ldr	x3, [x2]
				str	x3, [x29, 6760]
				mov	x3,0
    2 %ownlongrealarray a(1:6)=0.99,1.0,1.01,0.99,1.0,1.01;
				bl	_imp_initialise
		.LVL1:
				mov	x21, 0
    3 %longreal x; %integer i
    4 %for i=1,1,3 %cycle
    5 x=a(i)
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
    6 %if mod(x)<mod(1.0) %then printstring("less ")
				fmov	d9, 1.0e+0
		.LBB92:
				fcmpe	d8, d9
				blt	.L21
		.LVL58:
		.L2:
    7 %if mod(x)=mod(1.0) %then printstring("equal ")
				add	x25, x20, 48
				add	x19, x29, 3176
				add	x26, x29, 360
				b	.L15
		.LVL2:
		.L21:
				mov	x24, 256
				mov	x2, x24
				mov	x1, x25
				mov	x0, x19
				bl	memcpy
		.LVL3:
				mov	x2, x24
				mov	x1, x19
				mov	x0, x26
				bl	memcpy
		.LVL4:
				add	x23, x29, 3688
				mov	x2, x24
				mov	x1, x26
				mov	x0, x23
				bl	memcpy
		.LVL5:
		.LBE92:
		.LBB93:
		.LBB94:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL6:
				mov	x0, x22
				bl	_imp_printstring
		.LVL7:
				b	.L2
		.LVL8:
		.L22:
		.LBE94:
		.LBE93:
		.LBB95:
				cmp	x21, 3
				beq	.L20
		.L15:
		.LVL56:
		.LBB124:
		.LBB125:
				ldr	d8, [x20, x21, lsl 3]
				fabs	d8, d8
		.LVL57:
		.LBE125:
		.LBE124:
				fcmp	d8, d9
				beq	.L22
		.L3:
    8 %if mod(x)>mod(1.0) %then printstring("Greater ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 304
				mov	x0, x19
				bl	memcpy
		.LVL9:
				add	x22, x29, 616
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL10:
				add	x23, x29, 3944
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL11:
		.LBE95:
		.LBB96:
		.LBB97:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL12:
				mov	x0, x22
				bl	_imp_printstring
		.LVL13:
		.L4:
		.LBE97:
		.LBE96:
		.LBB98:
				fcmpe	d8, d9
				bls	.L5
		.LBB126:
    9 %if mod(x)<=mod(1.0) %then printstring(" less= ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 560
				mov	x0, x19
				bl	memcpy
		.LVL59:
				add	x22, x29, 872
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL60:
				add	x23, x29, 4096
				add	x23, x23, 104
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL61:
		.LBE126:
		.LBB127:
		.LBB128:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL62:
				mov	x0, x22
				bl	_imp_printstring
		.LVL63:
		.L5:
		.LBE128:
		.LBE127:
				fcmpe	d8, d9
				ble	.L4
		.L6:
		.LBB129:
   10 %if mod(x)#mod(1.0) %then printstring("noteq ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 816
				mov	x0, x19
				bl	memcpy
		.LVL14:
				add	x22, x29, 1128
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL15:
				add	x23, x29, 4096
				add	x23, x23, 360
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL16:
		.LBE98:
		.LBB99:
		.LBB100:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL17:
				mov	x0, x22
				bl	_imp_printstring
		.LVL18:
		.LDL1:
		.LBE100:
		.LBE99:
				fcmp	d8, d9
				bne	.L6
		.LBB101:
   11 %if mod(x)>=mod(1.0) %then printstring("Greater= ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 1072
				mov	x0, x19
				bl	memcpy
		.LVL64:
				add	x22, x29, 1384
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL65:
				add	x23, x29, 4096
				add	x23, x23, 616
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL66:
		.LBE129:
		.LBB130:
		.LBB131:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL67:
				mov	x0, x22
				bl	_imp_printstring
		.LVL68:
		.LDL6:
		.LBE131:
		.LBE130:
				fcmpe	d8, d9
				bpl	.L23
		.L8:
   12 %if mod(1.0)<mod(x) %then printstring("less ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 1328
				mov	x0, x19
				bl	memcpy
		.LVL19:
				add	x22, x29, 1640
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL20:
				add	x23, x29, 4096
				add	x23, x23, 872
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL21:
		.LBE101:
		.LBB102:
		.LBB103:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL22:
				mov	x0, x22
				bl	_imp_printstring
		.LVL23:
				b	.L9
		.L23:
		.LBE103:
		.LBE102:
		.LBB105:
				mov	x2, x24
				add	x1, x20, 1328
				mov	x0, x19
				bl	memcpy
		.LVL24:
				add	x22, x29, 1640
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL25:
				add	x23, x29, 4096
				add	x23, x23, 872
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL26:
		.LBE105:
		.LBB106:
		.LBB104:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL27:
				mov	x0, x22
				bl	_imp_printstring
		.LVL28:
		.LDL2:
		.LBE104:
		.LBE106:
				fcmpe	d8, d9
				bls	.L9
		.LBB107:
   13 %if mod(1.0)=mod(x) %then printstring("equal ")
				mov	x2, x24
				mov	x1, x25
				mov	x0, x19
				bl	memcpy
		.LVL29:
				add	x22, x29, 1896
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL30:
				add	x23, x29, 4096
				add	x23, x23, 1128
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL31:
		.LBE107:
		.LBB108:
		.LBB109:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL32:
				mov	x0, x22
				bl	_imp_printstring
		.LVL33:
		.L9:
		.LBE109:
		.LBE108:
				fcmp	d8, d9
				bne	.L8
		.LBB110:
   14 %if mod(1.0)>mod(x) %then printstring("Greater ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 304
				mov	x0, x19
				bl	memcpy
		.LVL34:
				add	x22, x29, 2152
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL35:
				add	x23, x29, 4096
				add	x23, x23, 1384
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL36:
		.LBE110:
		.LBB111:
		.LBB112:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL37:
				mov	x0, x22
				bl	_imp_printstring
		.LVL38:
		.L10:
		.LBE112:
		.LBE111:
		.LBB113:
				fcmpe	d8, d9
				bge	.L11
		.LBB132:
   15 %if mod(1.0)<=mod(x) %then printstring(" less= ")
				fcmpe	d8, d9
				bpl	.L10
		.L12:
		.LBB119:
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 560
				mov	x0, x19
				bl	memcpy
		.LVL69:
				add	x22, x29, 2408
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL70:
				add	x23, x29, 4096
				add	x23, x23, 1640
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL71:
		.LBE132:
		.LBB133:
		.LBB134:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL72:
				mov	x0, x22
				bl	_imp_printstring
		.LVL73:
				b	.L11
		.LVL74:
		.L20:
		.L16:
		.LBE134:
		.LBE133:
		.LBB135:
		.LBB136:
				mov	w0, 0
				bl	exit
		.LVL75:
		.LBE136:
		.LBE135:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		A.7689:
				.word	2061584302
				.word	1072672276
				.word	0
				.word	1072693248
				.word	-1030792151
				.word	1072703733
				.word	2061584302
				.word	1072672276
				.word	0
				.word	1072693248
				.word	-1030792151
				.word	1072703733
		.LC0:
				.byte	5
				.string	"less "
				.zero	249
		.LC1:
				.byte	6
				.string	"equal "
				.zero	248
		.LC2:
				.byte	8
				.string	"Greater "
				.zero	246
		.LC3:
				.byte	7
				.string	" less= "
				.zero	247
		.LC4:
				.byte	6
				.string	"noteq "
				.zero	248
		.LC5:
				.byte	9
				.string	"Greater= "
				.zero	245
		.LC6:
				.byte	8
				.string	"Greater="
				.zero	246
		.Letext0:
   16 %if mod(1.0)#mod(x) %then printstring("noteq ")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 816
				mov	x0, x19
				bl	memcpy
		.LVL39:
				add	x22, x29, 2664
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL40:
				add	x23, x29, 4096
				add	x23, x23, 1896
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL41:
		.LBE113:
		.LBB114:
		.LBB115:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL42:
				mov	x0, x22
				bl	_imp_printstring
		.LVL43:
		.LDL3:
		.LBE115:
		.LBE114:
				fcmp	d8, d9
				bne	.L12
		.L13:
		.LBB116:
   17 %if mod(mod(1.0))>=mod(x) %then printstring("Greater=")
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 1072
				mov	x0, x19
				bl	memcpy
		.LVL49:
				add	x22, x29, 2920
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL50:
				add	x23, x29, 4096
				add	x23, x23, 2152
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL51:
		.LBE119:
		.LBB120:
		.LBB121:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL52:
				mov	x0, x22
				bl	_imp_printstring
		.LVL53:
		.LDL4:
		.LBE121:
		.LBE120:
				fcmpe	d8, d9
				ble	.L13
		.L14:
		.LBB122:
		.LBB123:
				bl	_imp_newline
		.LVL54:
		.LDL5:
				add	x21, x21, 1
		.LVL55:
		.LBE123:
		.LBE122:
   18 newline
				mov	x24, 256
				mov	x2, x24
				add	x1, x20, 1584
				mov	x0, x19
				bl	memcpy
		.LVL44:
				add	x22, x29, 3432
				mov	x2, x24
				mov	x1, x19
				mov	x0, x22
				bl	memcpy
		.LVL45:
				add	x23, x29, 4096
				add	x23, x23, 2408
				mov	x2, x24
				mov	x1, x22
				mov	x0, x23
				bl	memcpy
		.LVL46:
		.LBE116:
		.LBB117:
		.LBB118:
				add	x22, x29, 96
				mov	x2, x24
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL47:
				mov	x0, x22
				bl	_imp_printstring
		.LVL48:
				b	.L14
		.L11:
		.LBE118:
		.LBE117:
   19 %repeat
   20 %endofprogram
   21 Statements compiled
