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