| //Original:/testcases/core/c_loopsetup_preg_stld/c_loopsetup_preg_stld.dsp |
| // Spec Reference: loopsetup preg st & ld |
| # mach: bfin |
| |
| .include "testutils.inc" |
| start |
| |
| INIT_R_REGS 0; |
| |
| A0 = 0; |
| A1 = 0; |
| ASTAT = r0; |
| |
| P1 = 9; |
| P2 = 8; |
| P0 = 7; |
| P4 = 6; |
| P5 = 5; |
| FP = 3; |
| |
| imm32 r0, 0x00200005; |
| imm32 r1, 0x00300010; |
| imm32 r2, 0x00500012; |
| imm32 r3, 0x00600024; |
| imm32 r4, 0x00700016; |
| imm32 r5, 0x00900028; |
| imm32 r6, 0x0a000030; |
| imm32 r7, 0x00b00044; |
| |
| loadsym I0, DATA0; |
| loadsym I1, DATA1; |
| R0 = [ I0 ++ ]; |
| R1 = [ I1 ++ ]; |
| LSETUP ( start1 , end1 ) LC0 = P1; |
| start1: |
| R0 += 1; |
| R1 += 2; |
| A1 += R0.H * R1.H, A0 += R0.L * R1.L || R0 = [ I0 ++ ] || R1 = [ I1 ++ ]; |
| end1: |
| R2 += 3; |
| |
| R3 = ( A0 += A1 ); |
| |
| A0 = 0; |
| A1 = 0; |
| LSETUP ( start2 , end2 ) LC0 = P2; |
| start2: |
| R4 += 4; |
| A1 += R0.H * R1.H, A0 += R0.L * R1.L || R0 = [ I0 -- ] || R1 = [ I1 -- ]; |
| end2: |
| R5 += -5; |
| R6 = ( A0 += A1 ); |
| CHECKREG r0, 0x000D0003; |
| CHECKREG r1, 0x00C00103; |
| CHECKREG r2, 0x0050002D; |
| CHECKREG r3, 0x00010794; |
| CHECKREG r4, 0x00700036; |
| CHECKREG r5, 0x00900000; |
| CHECKREG r6, 0x00011388; |
| CHECKREG r7, 0x00B00044; |
| |
| imm32 r0, 0x01200805; |
| imm32 r1, 0x02300710; |
| imm32 r2, 0x03500612; |
| imm32 r3, 0x04600524; |
| imm32 r4, 0x05700416; |
| imm32 r5, 0x06900328; |
| imm32 r6, 0x0a700230; |
| imm32 r7, 0x08b00044; |
| |
| loadsym I2, DATA0; |
| loadsym I3, DATA1; |
| [ I2 ++ ] = R0; |
| [ I3 ++ ] = R1; |
| LSETUP ( start3 , end3 ) LC0 = P1; |
| start3: |
| [ I2 ++ ] = R2; |
| [ I3 ++ ] = R3; |
| R2 += 1; |
| end3: |
| R3 += 1; |
| |
| A0 = 0; |
| A1 = 0; |
| LSETUP ( start4 , end4 ) LC0 = P2; |
| R0 = [ I0 -- ]; |
| R1 = [ I1 -- ]; |
| start4: |
| A1 += R0.H * R1.H, A0 += R0.L * R1.L || R0 = [ I2 -- ] || R1 = [ I3 -- ]; |
| R4 = R4 + R0; // comp3op |
| end4: |
| R5 = R5 + R1; |
| |
| R6 = ( A0 += A1 ); |
| CHECKREG r0, 0x03500614; |
| CHECKREG r1, 0x04600526; |
| CHECKREG r2, 0x0350061B; |
| CHECKREG r3, 0x0460052D; |
| CHECKREG r4, 0x1CF02EC1; |
| CHECKREG r5, 0x25602851; |
| CHECKREG r6, 0x0282F220; |
| CHECKREG r7, 0x08B00044; |
| |
| pass |
| |
| .data |
| DATA0: |
| .dd 0x000a0000 |
| .dd 0x000b0001 |
| .dd 0x000c0002 |
| .dd 0x000d0003 |
| .dd 0x000e0004 |
| .dd 0x000f0005 |
| .dd 0x00100006 |
| .dd 0x00200007 |
| .dd 0x00300008 |
| .dd 0x00400009 |
| .dd 0x0050000a |
| .dd 0x0060000b |
| .dd 0x0070000c |
| .dd 0x0080000d |
| .dd 0x0090000e |
| .dd 0x0100000f |
| .dd 0x02000010 |
| .dd 0x03000011 |
| .dd 0x04000012 |
| .dd 0x05000013 |
| .dd 0x06000014 |
| .dd 0x001a0000 |
| .dd 0x001b0001 |
| .dd 0x001c0002 |
| .dd 0x001d0003 |
| .dd 0x00010004 |
| .dd 0x00010005 |
| .dd 0x02100006 |
| .dd 0x02200007 |
| .dd 0x02300008 |
| .dd 0x02200009 |
| .dd 0x0250000a |
| .dd 0x0260000b |
| .dd 0x0270000c |
| .dd 0x0280000d |
| .dd 0x0290000e |
| .dd 0x2100000f |
| .dd 0x22000010 |
| .dd 0x22000011 |
| .dd 0x24000012 |
| .dd 0x25000013 |
| .dd 0x26000014 |
| |
| DATA1: |
| .dd 0x00f00100 |
| .dd 0x00e00101 |
| .dd 0x00d00102 |
| .dd 0x00c00103 |
| .dd 0x00b00104 |
| .dd 0x00a00105 |
| .dd 0x00900106 |
| .dd 0x00800107 |
| .dd 0x00100108 |
| .dd 0x00200109 |
| .dd 0x0030010a |
| .dd 0x0040010b |
| .dd 0x0050011c |
| .dd 0x0060010d |
| .dd 0x0070010e |
| .dd 0x0080010f |
| .dd 0x00900110 |
| .dd 0x01000111 |
| .dd 0x02000112 |
| .dd 0x03000113 |
| .dd 0x04000114 |
| .dd 0x05000115 |
| .dd 0x03f00100 |
| .dd 0x03e00101 |
| .dd 0x03d00102 |
| .dd 0x03c00103 |
| .dd 0x03b00104 |
| .dd 0x03a00105 |
| .dd 0x03900106 |
| .dd 0x03800107 |
| .dd 0x03100108 |
| .dd 0x03200109 |
| .dd 0x0330010a |
| .dd 0x0330010b |
| .dd 0x0350011c |
| .dd 0x0360010d |
| .dd 0x0370010e |
| .dd 0x0380010f |
| .dd 0x03900110 |
| .dd 0x31000111 |
| .dd 0x32000112 |
| .dd 0x33000113 |
| .dd 0x34000114 |