         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.machine ppc
				.section	".text"
		.Ltext0:
				.align 2
				.globl main
		main:
		.LFB185:
		.LVL0:
				stwu 1,-1296(1)
				mflr 0
				stw 0,1300(1)
				stw 29,1284(1)
				stw 30,1288(1)
				stw 31,1292(1)
				lwz 9,-28680(2)
				stw 9,1276(1)
				li 9,0
    2 %INTEGER I,J,K
				bl _imp_initialise
		.LVL1:
				li 12,-4
				li 31,0
				b .L4
		.LVL2:
		.L23:
		.LDL1:
		.LDL2:
				addis 31,31,0x1
    3       I=3; J=4; K=5
    4 %INTEGERARRAY A(0:3,2:4,1:5)
    5 %INTEGERARRAY B(0:I,2:J,1:K)
    6       %FOR I=0,1,3 %CYCLE
    7          %FOR J=2,1,4 %CYCLE
    8             %FOR K=1,1,5 %CYCLE
    9                A(I,J,K)=M'A'<<24!I<<16!J<<8!K
				cmpwi 7,12,176
				addi 12,12,60
				beq 7,.L22
		.LVL3:
		.L4:
				oris 30,31,0x4100
				or 5,30,4
				or 6,4,0
				mr 8,3
				mr 10,11
				li 9,0
				li 7,5
				mtctr 7
		.LVL6:
		.L5:
				or 7,5,9
				stwu 7,4(10)
   10                B(I,J,K)=M'B'<<24!I<<16!J<<8!K
				oris 0,31,0x4200
				addi 9,1,284
				add 11,12,9
				addi 9,1,524
		.LVL4:
				add 3,12,9
				li 4,512
		.LVL5:
		.L2:
				or 7,6,9
				stwu 7,4(8)
		.LDL3:
				cmpwi 7,4,1024
				addi 4,4,256
				bne 7,.L2
				b .L23
		.L22:
   11             %REPEAT
				bdnz .L5
		.LDL4:
		.LDL5:
				addi 11,11,20
				addi 3,3,20
   12          %REPEAT
				addi 9,9,1
		.LVL7:
   13       %REPEAT
   14       %FOR I=0,1,3 %CYCLE
   15          %FOR J=2,1,4 %CYCLE
   16             %FOR K=1,1,5 %CYCLE
				li 9,0
		.LVL8:
				mr 8,9
				subfic 5,9,60
				addi 0,31,60
				add 9,11,9
				add 5,9,5
		.LVL11:
		.L8:
				lwzx 10,8,12
				xor 10,10,3
				cntlzw 10,10
				srwi 10,10,5
				lwzx 9,8,30
				and. 10,10,9
				beq 0,.L11
				add 6,0,8
				add 7,5,8
				subfic 9,10,5
				mtctr 9
		.LVL12:
		.L14:
		.LDL6:
		.LDL7:
   17                %IF A(I,J,K)&X'FFFFFF'#B(I,J,K)&X'FFFFFF' %START
				addi 12,1,524
		.LVL9:
				lis 3,0xff
				ori 3,3,0xffff
				addi 30,1,284
				addi 31,30,-60
				addi 11,12,-60
		.L3:
		.LVL10:
				addi 29,9,60
				lwzu 9,4(7)
				xor 9,9,3
				cntlzw 9,9
				srwi 9,9,5
				lwzu 4,4(6)
				and. 9,9,4
				beq 0,.L11
				cmplwi 7,8,240
				beq 7,.L9
				mr 9,8
				b .L3
		.LVL14:
		.L11:
		.LBB12:
   18                   PRINTSTRING("ERROR")
				cmplw 7,8,29
				bne 7,.L8
		.LDL10:
		.LDL11:
		.LDL12:
				li 5,256
				lis 4,.LANCHOR0@ha
				la 4,.LANCHOR0@l(4)
				addi 3,1,1020
				bl memcpy
		.LVL15:
				li 5,256
				addi 4,1,1020
				addi 3,1,764
				bl memcpy
		.LVL16:
				li 5,256
				addi 4,1,764
				addi 3,1,1020
				bl memcpy
		.LVL17:
		.LBE12:
		.LBB13:
		.LBB14:
				li 5,256
				addi 4,1,1020
				addi 3,1,16
				bl memcpy
		.LVL18:
				addi 3,1,16
				bl _imp_printstring
		.LVL19:
		.LBE14:
		.LBE13:
		.LBB15:
		.LBB16:
				li 3,0
				bl exit
		.LVL20:
		.L9:
		.LBE16:
		.LBE15:
		.LBB17:
   19                   %MONITOR
				bdnz .L14
		.LDL8:
		.LDL9:
				addi 8,8,20
   20                   %STOP
				addi 10,10,1
		.LVL13:
   21                %FINISH
   22             %REPEAT
   23          %REPEAT
   24       %REPEAT
   25       PRINTSTRING("TEST OK")
				li 5,256
				lis 4,.LANCHOR0@ha
				la 4,.LANCHOR0@l(4)
				addi 4,4,256
				addi 3,1,1020
				bl memcpy
		.LVL21:
				li 5,256
				addi 4,1,1020
				addi 3,1,764
				bl memcpy
		.LVL22:
				li 5,256
				addi 4,1,764
				addi 3,1,1020
				bl memcpy
		.LVL23:
		.LBE17:
		.LBB18:
		.LBB19:
				li 5,256
				addi 4,1,1020
				addi 3,1,16
				bl memcpy
		.LVL24:
				addi 3,1,16
				bl _imp_printstring
		.LVL25:
		.LBE19:
		.LBE18:
		.LBB20:
		.LBB21:
				li 3,0
				bl exit
		.LVL26:
		.LBE21:
		.LBE20:
		.LFE185:
				.section	.rodata
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	5
				.string	"ERROR"
				.zero	249
		.LC1:
				.byte	7
				.string	"TEST OK"
				.zero	247
				.section	".text"
		.Letext0:
   26 %ENDOFPROGRAM
   28 Statements compiled
