1//Original:/testcases/core/c_dsp32shift_fextx/c_dsp32shift_fextx.dsp 2// Spec Reference: dsp32shift fext x 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8imm32 r0, 0x00000001; 9imm32 r1, 0x01000801; 10imm32 r2, 0x08200802; 11imm32 r3, 0x08030803; 12imm32 r4, 0x08004804; 13imm32 r5, 0x08000505; 14imm32 r6, 0x08000866; 15imm32 r7, 0x08000807; 16R1 = EXTRACT( R1, R0.L ) (Z); 17R2 = EXTRACT( R2, R0.L ) (Z); 18R3 = EXTRACT( R3, R0.L ) (Z); 19R4 = EXTRACT( R4, R0.L ) (X); 20R5 = EXTRACT( R5, R0.L ) (Z); 21R6 = EXTRACT( R6, R0.L ) (Z); 22R7 = EXTRACT( R7, R0.L ) (X); 23R0 = EXTRACT( R0, R0.L ) (Z); 24CHECKREG r0, 0x00000001; 25CHECKREG r1, 0x00000001; 26CHECKREG r2, 0x00000000; 27CHECKREG r3, 0x00000001; 28CHECKREG r4, 0x00000000; 29CHECKREG r5, 0x00000001; 30CHECKREG r6, 0x00000000; 31CHECKREG r7, 0xFFFFFFFF; 32 33imm32 r0, 0x0900d001; 34imm32 r1, 0x09000002; 35imm32 r2, 0x09000002; 36imm32 r3, 0x09100003; 37imm32 r4, 0x09020004; 38imm32 r5, 0x09003005; 39imm32 r6, 0x09000406; 40imm32 r7, 0x09000057; 41R0 = EXTRACT( R0, R1.L ) (Z); 42R2 = EXTRACT( R2, R1.L ) (Z); 43R3 = EXTRACT( R3, R1.L ) (Z); 44R4 = EXTRACT( R4, R1.L ) (Z); 45R5 = EXTRACT( R5, R1.L ) (X); 46R6 = EXTRACT( R6, R1.L ) (Z); 47R7 = EXTRACT( R7, R1.L ) (X); 48R1 = EXTRACT( R1, R1.L ) (Z); 49CHECKREG r0, 0x00000001; 50CHECKREG r1, 0x00000002; 51CHECKREG r2, 0x00000002; 52CHECKREG r3, 0x00000003; 53CHECKREG r4, 0x00000000; 54CHECKREG r5, 0x00000001; 55CHECKREG r6, 0x00000002; 56CHECKREG r7, 0xFFFFFFFF; 57 58 59imm32 r0, 0x0a00e001; 60imm32 r1, 0x0a00e001; 61imm32 r2, 0x0a00000f; 62imm32 r3, 0x0a000010; 63imm32 r4, 0x0a00e004; 64imm32 r5, 0x0a00e005; 65imm32 r6, 0x0a00e006; 66imm32 r7, 0x0a00e007; 67R0 = EXTRACT( R0, R2.L ) (Z); 68R1 = EXTRACT( R1, R2.L ) (Z); 69R3 = EXTRACT( R3, R2.L ) (Z); 70R4 = EXTRACT( R4, R2.L ) (Z); 71R5 = EXTRACT( R5, R2.L ) (Z); 72R6 = EXTRACT( R6, R2.L ) (Z); 73R7 = EXTRACT( R7, R2.L ) (Z); 74R2 = EXTRACT( R2, R2.L ) (Z); 75CHECKREG r0, 0x00006001; 76CHECKREG r1, 0x00006001; 77CHECKREG r2, 0x0000000F; 78CHECKREG r3, 0x00000010; 79CHECKREG r4, 0x00006004; 80CHECKREG r5, 0x00006005; 81CHECKREG r6, 0x00006006; 82CHECKREG r7, 0x00006007; 83 84imm32 r0, 0x0b00f001; 85imm32 r1, 0x0b00f001; 86imm32 r2, 0x0b00f002; 87imm32 r3, 0x0b000010; 88imm32 r4, 0x0b00f004; 89imm32 r5, 0x0b00f005; 90imm32 r6, 0x0b00f006; 91imm32 r7, 0x0b00f007; 92R0 = EXTRACT( R0, R3.L ) (Z); 93R1 = EXTRACT( R1, R3.L ) (Z); 94R2 = EXTRACT( R2, R3.L ) (X); 95R4 = EXTRACT( R4, R3.L ) (Z); 96R5 = EXTRACT( R5, R3.L ) (Z); 97R6 = EXTRACT( R6, R3.L ) (X); 98R7 = EXTRACT( R7, R3.L ) (Z); 99R3 = EXTRACT( R3, R3.L ) (Z); 100CHECKREG r0, 0x0000F001; 101CHECKREG r1, 0x0000F001; 102CHECKREG r2, 0xFFFFF002; 103CHECKREG r3, 0x00000010; 104CHECKREG r4, 0x0000F004; 105CHECKREG r5, 0x0000F005; 106CHECKREG r6, 0xFFFFF006; 107CHECKREG r7, 0x0000F007; 108 109imm32 r0, 0x0c0000c0; 110imm32 r1, 0x0c0100c0; 111imm32 r2, 0x0c0200c0; 112imm32 r3, 0x0c0300c0; 113imm32 r4, 0x0c04000c; 114imm32 r5, 0x0c0500c0; 115imm32 r6, 0x0c0600c0; 116imm32 r7, 0x0c0700c0; 117R0 = EXTRACT( R0, R4.L ) (Z); 118R1 = EXTRACT( R1, R4.L ) (Z); 119R2 = EXTRACT( R2, R4.L ) (Z); 120R3 = EXTRACT( R3, R4.L ) (Z); 121R5 = EXTRACT( R5, R4.L ) (X); 122R6 = EXTRACT( R6, R4.L ) (Z); 123R7 = EXTRACT( R7, R4.L ) (Z); 124R4 = EXTRACT( R4, R4.L ) (Z); 125CHECKREG r0, 0x000000C0; 126CHECKREG r1, 0x000000C0; 127CHECKREG r2, 0x000000C0; 128CHECKREG r3, 0x000000C0; 129CHECKREG r4, 0x0000000C; 130CHECKREG r5, 0x000000C0; 131CHECKREG r6, 0x000000C0; 132CHECKREG r7, 0x000000C0; 133 134imm32 r0, 0xa00100d0; 135imm32 r1, 0xa00100d1; 136imm32 r2, 0xa00200d0; 137imm32 r3, 0xa00300d0; 138imm32 r4, 0xa00400d0; 139imm32 r5, 0xa0050007; 140imm32 r6, 0xa00600d0; 141imm32 r7, 0xa00700d0; 142R0 = EXTRACT( R0, R5.L ) (Z); 143R1 = EXTRACT( R1, R5.L ) (X); 144R2 = EXTRACT( R2, R5.L ) (Z); 145R3 = EXTRACT( R3, R5.L ) (Z); 146R4 = EXTRACT( R4, R5.L ) (X); 147R6 = EXTRACT( R6, R5.L ) (Z); 148R7 = EXTRACT( R7, R5.L ) (Z); 149R5 = EXTRACT( R5, R5.L ) (Z); 150CHECKREG r0, 0x00000050; 151CHECKREG r1, 0xFFFFFFD1; 152CHECKREG r2, 0x00000050; 153CHECKREG r3, 0x00000050; 154CHECKREG r4, 0xFFFFFFD0; 155CHECKREG r5, 0x00000007; 156CHECKREG r6, 0x00000050; 157CHECKREG r7, 0x00000050; 158 159imm32 r0, 0xb0010000; 160imm32 r1, 0xb0010000; 161imm32 r2, 0xb002000f; 162imm32 r3, 0xb0030000; 163imm32 r4, 0xb0040000; 164imm32 r5, 0xb0050000; 165imm32 r6, 0xb0060009; 166imm32 r7, 0xb0070000; 167R0 = EXTRACT( R0, R6.L ) (Z); 168R1 = EXTRACT( R1, R6.L ) (Z); 169R2 = EXTRACT( R2, R6.L ) (Z); 170R3 = EXTRACT( R3, R6.L ) (X); 171R4 = EXTRACT( R4, R6.L ) (Z); 172R5 = EXTRACT( R5, R6.L ) (Z); 173R6 = EXTRACT( R6, R6.L ) (Z); 174R7 = EXTRACT( R7, R6.L ) (Z); 175CHECKREG r0, 0x00000000; 176CHECKREG r1, 0x00000000; 177CHECKREG r2, 0x0000000F; 178CHECKREG r3, 0x00000000; 179CHECKREG r4, 0x00000000; 180CHECKREG r5, 0x00000000; 181CHECKREG r6, 0x00000009; 182CHECKREG r7, 0x00000000; 183 184imm32 r0, 0xd00100e0; 185imm32 r1, 0xd00100e0; 186imm32 r2, 0xd00200e0; 187imm32 r3, 0xd00300e0; 188imm32 r4, 0xd00400e0; 189imm32 r5, 0xd00500e0; 190imm32 r6, 0xd00600e0; 191imm32 r7, 0xd0070023; 192R1 = EXTRACT( R0, R7.L ) (Z); 193R2 = EXTRACT( R1, R7.L ) (Z); 194R3 = EXTRACT( R2, R7.L ) (Z); 195R4 = EXTRACT( R3, R7.L ) (Z); 196R5 = EXTRACT( R4, R7.L ) (X); 197R6 = EXTRACT( R5, R7.L ) (Z); 198R7 = EXTRACT( R6, R7.L ) (X); 199R0 = EXTRACT( R7, R7.L ) (Z); 200CHECKREG r0, 0x00000000; 201CHECKREG r1, 0x00000000; 202CHECKREG r2, 0x00000000; 203CHECKREG r3, 0x00000000; 204CHECKREG r4, 0x00000000; 205CHECKREG r5, 0x00000000; 206CHECKREG r6, 0x00000000; 207CHECKREG r7, 0x00000000; 208 209 210pass 211