1//Original:/proj/frio/dv/testcases/core/c_dsp32alu_byteop1ew/c_dsp32alu_byteop1ew.dsp 2// Spec Reference: dsp32alu byteop1ew 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 imm32 r0, 0x15678911; 9 imm32 r1, 0x2789ab1d; 10 imm32 r2, 0x34445515; 11 imm32 r3, 0x46667717; 12 imm32 r4, 0x5567891b; 13 imm32 r5, 0x6789ab1d; 14 imm32 r6, 0x74445515; 15 imm32 r7, 0x86667777; 16 R4 = BYTEOP1P ( R1:0 , R3:2 ); 17 R5 = BYTEOP1P ( R1:0 , R3:2 ) (R); 18 R6 = BYTEOP1P ( R1:0 , R3:2 ) (T); 19 R7 = BYTEOP1P ( R1:0 , R3:2 ) (T , R); 20 R0 = BYTEOP1P ( R1:0 , R3:2 ) (T , R); 21 CHECKREG r4, 0x25566F13; 22 CHECKREG r5, 0x3778911A; 23 CHECKREG r6, 0x24556F13; 24 CHECKREG r7, 0x3677911A; 25 CHECKREG r0, 0x3677911A; 26 27 imm32 r0, 0x1567892b; 28 imm32 r1, 0x2789ab2d; 29 imm32 r2, 0x34445525; 30 imm32 r3, 0x46667727; 31 imm32 r4, 0x58889929; 32 imm32 r5, 0x6aaabb2b; 33 imm32 r6, 0x7cccdd2d; 34 imm32 r7, 0x8eeeffff; 35 R0 = BYTEOP1P ( R3:2 , R1:0 ); 36 R1 = BYTEOP1P ( R3:2 , R1:0 ) (R); 37 R2 = BYTEOP1P ( R3:2 , R1:0 ) (T); 38 R3 = BYTEOP1P ( R3:2 , R1:0 ) (T , R); 39 R4 = BYTEOP1P ( R3:2 , R1:0 ) (T , R); 40 R5 = BYTEOP1P ( R3:2 , R1:0 ) (T , R); 41 R6 = BYTEOP1P ( R3:2 , R1:0 ) (T , R); 42 R7 = BYTEOP1P ( R3:2 , R1:0 ) (T , R); 43 CHECKREG r0, 0x25566F28; 44 CHECKREG r1, 0x3778912A; 45 CHECKREG r2, 0x2C4D6226; 46 CHECKREG r3, 0x3E6F8428; 47 CHECKREG r4, 0x3A738A29; 48 CHECKREG r5, 0x3A738A29; 49 CHECKREG r6, 0x3A738A29; 50 CHECKREG r7, 0x3A738A29; 51 52 imm32 r0, 0x416789ab; 53 imm32 r1, 0x6289abcd; 54 imm32 r2, 0x43445555; 55 imm32 r3, 0x64667777; 56 imm32 r0, 0x456789ab; 57 imm32 r1, 0x6689abcd; 58 imm32 r2, 0x47445555; 59 imm32 r3, 0x68667777; 60 ( R1 , R2 ) = BYTEOP16P ( R1:0 , R3:2 ); 61 ( R0 , R3 ) = BYTEOP16P ( R1:0 , R3:2 ) (R); 62 ( R4 , R5 ) = BYTEOP16P ( R3:2 , R1:0 ); 63 ( R6 , R7 ) = BYTEOP16P ( R3:2 , R1:0 ); 64 CHECKREG r0, 0x006800F2; 65 CHECKREG r1, 0x008C00AB; 66 CHECKREG r2, 0x00DE0100; 67 CHECKREG r3, 0x00770122; 68 CHECKREG r4, 0x00000146; 69 CHECKREG r5, 0x000100F2; 70 CHECKREG r6, 0x00000146; 71 CHECKREG r7, 0x000100F2; 72 73 imm32 r0, 0x416789ab; 74 imm32 r1, 0x6289abcd; 75 imm32 r2, 0x43445555; 76 imm32 r3, 0x64667777; 77 imm32 r0, 0x456789ab; 78 imm32 r1, 0x6689abcd; 79 imm32 r2, 0x47445555; 80 imm32 r3, 0x68667777; 81 ( R7 , R6 ) = BYTEOP16P ( R3:2 , R1:0 ); 82 ( R5 , R4 ) = BYTEOP16P ( R3:2 , R1:0 ) (R); 83 ( R2 , R3 ) = BYTEOP16P ( R3:2 , R1:0 ); 84 ( R1 , R0 ) = BYTEOP16P ( R3:2 , R1:0 ); 85 CHECKREG r0, 0x00890156; 86 CHECKREG r1, 0x004500F3; 87 CHECKREG r2, 0x008C00AB; 88 CHECKREG r3, 0x00DE0100; 89 CHECKREG r4, 0x01220144; 90 CHECKREG r5, 0x00CE00EF; 91 CHECKREG r6, 0x00DE0100; 92 CHECKREG r7, 0x008C00AB; 93 94 imm32 r0, 0x416789ab; 95 imm32 r1, 0x6289abcd; 96 imm32 r2, 0x43445555; 97 imm32 r3, 0x64667777; 98 imm32 r0, 0x456789ab; 99 imm32 r1, 0x6689abcd; 100 imm32 r2, 0x47445555; 101 imm32 r3, 0x68667777; 102 ( R1 , R2 ) = BYTEOP16M ( R1:0 , R3:2 ); 103 ( R0 , R3 ) = BYTEOP16M ( R1:0 , R3:2 ) (R); 104 ( R4 , R5 ) = BYTEOP16M ( R3:2 , R1:0 ); 105 ( R6 , R7 ) = BYTEOP16M ( R3:2 , R1:0 ); 106 CHECKREG r0, 0x00970098; 107 CHECKREG r1, 0xFFFE0023; 108 CHECKREG r2, 0x00340056; 109 CHECKREG r3, 0xFF89FFAC; 110 CHECKREG r4, 0x0000FF9D; 111 CHECKREG r5, 0x0000FFBE; 112 CHECKREG r6, 0x0000FF9D; 113 CHECKREG r7, 0x0000FFBE; 114 115 imm32 r0, 0x516789ab; 116 imm32 r1, 0x6289abcd; 117 imm32 r2, 0x73445555; 118 imm32 r3, 0x84667777; 119 imm32 r0, 0x956789ab; 120 imm32 r1, 0xa689abcd; 121 imm32 r2, 0xb7445555; 122 imm32 r3, 0xc86def77; 123 ( R7 , R6 ) = BYTEOP16M ( R3:2 , R1:0 ); 124 ( R5 , R4 ) = BYTEOP16M ( R3:2 , R1:0 ) (R); 125 ( R2 , R3 ) = BYTEOP16M ( R3:2 , R1:0 ); 126 ( R1 , R0 ) = BYTEOP16M ( R3:2 , R1:0 ); 127 CHECKREG r0, 0x00760032; 128 CHECKREG r1, 0xFF6BFFBB; 129 CHECKREG r2, 0x0022FFDD; 130 CHECKREG r3, 0xFFCCFFAA; 131 CHECKREG r4, 0x0044FFAA; 132 CHECKREG r5, 0x0022FFE4; 133 CHECKREG r6, 0xFFCCFFAA; 134 CHECKREG r7, 0x0022FFDD; 135 136 pass 137