//Original:/testcases/core/c_dsp32shift_pack/c_dsp32shift_pack.dsp // Spec Reference: dsp32shift pack # mach: bfin .include "testutils.inc" start imm32 r0, 0x01230000; imm32 r1, 0x02345678; imm32 r2, 0x03456789; imm32 r3, 0x0456789a; imm32 r4, 0x056789ab; imm32 r5, 0x06789abc; imm32 r6, 0x0789abcd; imm32 r7, 0x089abcde; R1 = PACK( R0.L , R0.L ); R2 = PACK( R1.L , R0.H ); R3 = PACK( R2.H , R0.L ); R4 = PACK( R3.H , R0.H ); R5 = PACK( R4.L , R0.L ); R6 = PACK( R5.L , R0.H ); R7 = PACK( R6.H , R0.L ); R0 = PACK( R7.H , R0.H ); CHECKREG r1, 0x00000000; CHECKREG r0, 0x00000123; CHECKREG r2, 0x00000123; CHECKREG r3, 0x00000000; CHECKREG r4, 0x00000123; CHECKREG r5, 0x01230000; CHECKREG r6, 0x00000123; CHECKREG r7, 0x00000000; imm32 r0, 0x11230001; imm32 r1, 0x12345678; imm32 r2, 0x1bcdef12; imm32 r3, 0x1456789a; imm32 r4, 0x1cdef012; imm32 r5, 0x1456789a; imm32 r6, 0x1789abcd; imm32 r7, 0x189abcde; R2 = PACK( R0.L , R1.L ); R3 = PACK( R1.L , R1.H ); R4 = PACK( R2.H , R1.L ); R5 = PACK( R3.H , R1.H ); R6 = PACK( R4.L , R1.L ); R7 = PACK( R5.L , R1.H ); R0 = PACK( R6.H , R1.L ); R1 = PACK( R7.H , R1.H ); CHECKREG r0, 0x56785678; CHECKREG r1, 0x12341234; CHECKREG r2, 0x00015678; CHECKREG r3, 0x56781234; CHECKREG r4, 0x00015678; CHECKREG r5, 0x56781234; CHECKREG r6, 0x56785678; CHECKREG r7, 0x12341234; imm32 r0, 0x20230002; imm32 r1, 0x21345678; imm32 r2, 0x22456789; imm32 r3, 0x2356789a; imm32 r4, 0x246789ab; imm32 r5, 0x25789abc; imm32 r6, 0x2689abcd; imm32 r7, 0x279abcde; R3 = PACK( R0.L , R2.L ); R4 = PACK( R1.L , R2.H ); R5 = PACK( R2.H , R2.L ); R6 = PACK( R3.H , R2.H ); R7 = PACK( R4.L , R2.L ); R0 = PACK( R5.L , R2.H ); R1 = PACK( R6.H , R2.L ); R2 = PACK( R7.H , R2.H ); CHECKREG r0, 0x67892245; CHECKREG r1, 0x00026789; CHECKREG r2, 0x22452245; CHECKREG r3, 0x00026789; CHECKREG r4, 0x56782245; CHECKREG r5, 0x22456789; CHECKREG r6, 0x00022245; CHECKREG r7, 0x22456789; imm32 r0, 0x31230003; imm32 r1, 0x31345678; imm32 r2, 0x31456789; imm32 r3, 0x3156789a; imm32 r4, 0x316789ab; imm32 r5, 0x31789abc; imm32 r6, 0x3189abcd; imm32 r7, 0x311abcde; R4 = PACK( R0.L , R3.L ); R5 = PACK( R1.L , R3.H ); R6 = PACK( R2.H , R3.L ); R7 = PACK( R3.H , R3.H ); R0 = PACK( R4.L , R3.L ); R1 = PACK( R5.L , R3.H ); R2 = PACK( R6.H , R3.L ); R3 = PACK( R7.H , R3.H ); CHECKREG r0, 0x789A789A; CHECKREG r1, 0x31563156; CHECKREG r2, 0x3145789A; CHECKREG r3, 0x31563156; CHECKREG r4, 0x0003789A; CHECKREG r5, 0x56783156; CHECKREG r6, 0x3145789A; CHECKREG r7, 0x31563156; imm32 r0, 0x41230004; imm32 r1, 0x42345678; imm32 r2, 0x43456789; imm32 r3, 0x4456789a; imm32 r4, 0x456789ab; imm32 r5, 0x46789abc; imm32 r6, 0x4789abcd; imm32 r7, 0x489abcde; R0 = PACK( R0.L , R4.L ); R1 = PACK( R1.L , R4.H ); R2 = PACK( R2.H , R4.L ); R3 = PACK( R3.H , R4.H ); R4 = PACK( R4.L , R4.L ); R5 = PACK( R5.L , R4.H ); R6 = PACK( R6.H , R4.L ); R7 = PACK( R7.H , R4.H ); CHECKREG r0, 0x000489AB; CHECKREG r1, 0x56784567; CHECKREG r2, 0x434589AB; CHECKREG r3, 0x44564567; CHECKREG r4, 0x89AB89AB; CHECKREG r5, 0x9ABC89AB; CHECKREG r6, 0x478989AB; CHECKREG r7, 0x489A89AB; imm32 r0, 0x51230005; imm32 r1, 0x52345678; imm32 r2, 0x53456789; imm32 r3, 0x5456789a; imm32 r4, 0x556789ab; imm32 r5, 0x56789abc; imm32 r6, 0x5789abcd; imm32 r7, 0x589abcde; R6 = PACK( R0.L , R5.L ); R7 = PACK( R1.L , R5.H ); R0 = PACK( R2.H , R5.L ); R1 = PACK( R3.H , R5.H ); R2 = PACK( R4.L , R5.L ); R3 = PACK( R5.L , R5.H ); R4 = PACK( R6.H , R5.L ); R5 = PACK( R7.H , R5.H ); CHECKREG r0, 0x53459ABC; CHECKREG r1, 0x54565678; CHECKREG r2, 0x89AB9ABC; CHECKREG r3, 0x9ABC5678; CHECKREG r4, 0x00059ABC; CHECKREG r5, 0x56785678; CHECKREG r6, 0x00059ABC; CHECKREG r7, 0x56785678; imm32 r0, 0x61230006; imm32 r1, 0x62345678; imm32 r2, 0x63456789; imm32 r3, 0x6456789a; imm32 r4, 0x656789ab; imm32 r5, 0x66789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x689abcde; R7 = PACK( R0.L , R6.L ); R0 = PACK( R1.L , R6.H ); R1 = PACK( R2.H , R6.L ); R2 = PACK( R3.H , R6.H ); R3 = PACK( R4.L , R6.L ); R4 = PACK( R5.L , R6.H ); R5 = PACK( R6.H , R6.L ); R6 = PACK( R7.H , R6.H ); CHECKREG r0, 0x56786789; CHECKREG r1, 0x6345ABCD; CHECKREG r2, 0x64566789; CHECKREG r3, 0x89ABABCD; CHECKREG r4, 0x9ABC6789; CHECKREG r5, 0x6789ABCD; CHECKREG r6, 0x00066789; CHECKREG r7, 0x0006ABCD; imm32 r0, 0x71230007; imm32 r1, 0x72345678; imm32 r2, 0x73456789; imm32 r3, 0x7456789a; imm32 r4, 0x756789ab; imm32 r5, 0x76789abc; imm32 r6, 0x7789abcd; imm32 r7, 0x789abcde; R0 = PACK( R0.L , R7.L ); R1 = PACK( R1.L , R7.H ); R2 = PACK( R2.H , R7.L ); R3 = PACK( R3.H , R7.H ); R4 = PACK( R4.L , R7.L ); R5 = PACK( R5.L , R7.H ); R6 = PACK( R6.H , R7.L ); R7 = PACK( R7.H , R7.H ); CHECKREG r0, 0x0007BCDE; CHECKREG r1, 0x5678789A; CHECKREG r2, 0x7345BCDE; CHECKREG r3, 0x7456789A; CHECKREG r4, 0x89ABBCDE; CHECKREG r5, 0x9ABC789A; CHECKREG r6, 0x7789BCDE; CHECKREG r7, 0x789A789A; imm32 r0, 0x81230008; imm32 r1, 0x82345678; imm32 r2, 0x83456789; imm32 r3, 0x8456789a; imm32 r4, 0x856789ab; imm32 r5, 0x86789abc; imm32 r6, 0x8789abcd; imm32 r7, 0x889abcde; R0 = PACK( R0.L , R0.L ); R1 = PACK( R1.L , R0.H ); R2 = PACK( R2.H , R0.L ); R3 = PACK( R3.H , R0.H ); R4 = PACK( R4.L , R0.L ); R5 = PACK( R5.L , R0.H ); R6 = PACK( R6.H , R0.L ); R7 = PACK( R7.H , R0.H ); CHECKREG r0, 0x00080008; CHECKREG r1, 0x56780008; CHECKREG r2, 0x83450008; CHECKREG r3, 0x84560008; CHECKREG r4, 0x89AB0008; CHECKREG r5, 0x9ABC0008; CHECKREG r6, 0x87890008; CHECKREG r7, 0x889A0008; imm32 r0, 0x91230009; imm32 r1, 0x92345678; imm32 r2, 0x93456789; imm32 r3, 0x9456789a; imm32 r4, 0x956789ab; imm32 r5, 0x96789abc; imm32 r6, 0x9789abcd; imm32 r7, 0x989abcde; R0 = PACK( R0.L , R1.L ); R1 = PACK( R1.L , R1.H ); R2 = PACK( R2.H , R1.L ); R3 = PACK( R3.H , R1.H ); R4 = PACK( R4.L , R1.L ); R5 = PACK( R5.L , R1.H ); R6 = PACK( R6.H , R1.L ); R7 = PACK( R7.H , R1.H ); CHECKREG r0, 0x00095678; CHECKREG r1, 0x56789234; CHECKREG r2, 0x93459234; CHECKREG r3, 0x94565678; CHECKREG r4, 0x89AB9234; CHECKREG r5, 0x9ABC5678; CHECKREG r6, 0x97899234; CHECKREG r7, 0x989A5678; imm32 r0, 0xa123000a; imm32 r1, 0xa2345678; imm32 r2, 0xa3456789; imm32 r3, 0xa456789a; imm32 r4, 0xa56789ab; imm32 r5, 0xa6789abc; imm32 r6, 0xa789abcd; imm32 r7, 0xa89abcde; R0 = PACK( R0.L , R2.L ); R1 = PACK( R1.L , R2.H ); R2 = PACK( R2.H , R2.L ); R3 = PACK( R3.H , R2.H ); R4 = PACK( R4.L , R2.L ); R5 = PACK( R5.L , R2.H ); R6 = PACK( R6.H , R2.L ); R7 = PACK( R7.H , R2.H ); CHECKREG r0, 0x000A6789; CHECKREG r1, 0x5678A345; CHECKREG r2, 0xA3456789; CHECKREG r3, 0xA456A345; CHECKREG r4, 0x89AB6789; CHECKREG r5, 0x9ABCA345; CHECKREG r6, 0xA7896789; CHECKREG r7, 0xA89AA345; imm32 r0, 0xb123000b; imm32 r1, 0xb2345678; imm32 r2, 0xb3456789; imm32 r3, 0xb456789a; imm32 r4, 0xb56789ab; imm32 r5, 0xb6789abc; imm32 r6, 0xb789abcd; imm32 r7, 0xb89abcde; R0 = PACK( R0.L , R3.L ); R1 = PACK( R1.L , R3.H ); R2 = PACK( R2.H , R3.L ); R3 = PACK( R3.H , R3.H ); R4 = PACK( R4.L , R3.L ); R5 = PACK( R5.L , R3.H ); R6 = PACK( R6.H , R3.L ); R7 = PACK( R7.H , R3.H ); CHECKREG r0, 0x000B789A; CHECKREG r1, 0x5678B456; CHECKREG r2, 0xB345789A; CHECKREG r3, 0xB456B456; CHECKREG r4, 0x89ABB456; CHECKREG r5, 0x9ABCB456; CHECKREG r6, 0xB789B456; CHECKREG r7, 0xB89AB456; imm32 r0, 0xc123000c; imm32 r1, 0xc2345678; imm32 r2, 0xc3456789; imm32 r3, 0xc456789a; imm32 r4, 0xc56789ab; imm32 r5, 0xc6789abc; imm32 r6, 0xc789abcd; imm32 r7, 0xc89abcde; R0 = PACK( R0.L , R4.L ); R1 = PACK( R1.L , R4.H ); R2 = PACK( R2.H , R4.L ); R3 = PACK( R3.H , R4.H ); R4 = PACK( R4.L , R4.L ); R5 = PACK( R5.L , R4.H ); R6 = PACK( R6.H , R4.L ); R7 = PACK( R7.H , R4.H ); CHECKREG r0, 0x000C89AB; CHECKREG r1, 0x5678C567; CHECKREG r2, 0xC34589AB; CHECKREG r3, 0xC456C567; CHECKREG r4, 0x89AB89AB; CHECKREG r5, 0x9ABC89AB; CHECKREG r6, 0xC78989AB; CHECKREG r7, 0xC89A89AB; imm32 r0, 0xd123000d; imm32 r1, 0xd2345678; imm32 r2, 0xd3456789; imm32 r3, 0xd456789a; imm32 r4, 0xd56789ab; imm32 r5, 0xd6789abc; imm32 r6, 0xd789abcd; imm32 r7, 0xd89abcde; R0 = PACK( R0.L , R5.L ); R1 = PACK( R1.L , R5.H ); R2 = PACK( R2.H , R5.L ); R3 = PACK( R3.H , R5.H ); R4 = PACK( R4.L , R5.L ); R5 = PACK( R5.L , R5.H ); R6 = PACK( R6.H , R5.L ); R7 = PACK( R7.H , R5.H ); CHECKREG r0, 0x000D9ABC; CHECKREG r1, 0x5678D678; CHECKREG r2, 0xD3459ABC; CHECKREG r3, 0xD456D678; CHECKREG r4, 0x89AB9ABC; CHECKREG r5, 0x9ABCD678; CHECKREG r6, 0xD789D678; CHECKREG r7, 0xD89A9ABC; imm32 r0, 0xe123000e; imm32 r1, 0xe2345678; imm32 r2, 0xe3456789; imm32 r3, 0xe456789a; imm32 r4, 0xe56789ab; imm32 r5, 0xe6789abc; imm32 r6, 0xe789abcd; imm32 r7, 0xe89abcde; R0 = PACK( R0.L , R6.L ); R1 = PACK( R1.L , R6.H ); R2 = PACK( R2.H , R6.L ); R3 = PACK( R3.H , R6.H ); R4 = PACK( R4.L , R6.L ); R5 = PACK( R5.L , R6.H ); R6 = PACK( R6.H , R6.L ); R7 = PACK( R7.H , R6.H ); CHECKREG r0, 0x000EABCD; CHECKREG r1, 0x5678E789; CHECKREG r2, 0xE345ABCD; CHECKREG r3, 0xE456E789; CHECKREG r4, 0x89ABABCD; CHECKREG r5, 0x9ABCE789; CHECKREG r6, 0xE789ABCD; CHECKREG r7, 0xE89AE789; imm32 r0, 0xf123000f; imm32 r1, 0xf2345678; imm32 r2, 0xf3456789; imm32 r3, 0xf456789a; imm32 r4, 0xf56789ab; imm32 r5, 0xf6789abc; imm32 r6, 0xf789abcd; imm32 r7, 0xf89abcde; R0 = PACK( R0.L , R7.L ); R1 = PACK( R1.L , R7.H ); R2 = PACK( R2.H , R7.L ); R3 = PACK( R3.H , R7.H ); R4 = PACK( R4.L , R7.L ); R5 = PACK( R5.L , R7.H ); R6 = PACK( R6.H , R7.L ); R7 = PACK( R7.H , R7.H ); CHECKREG r0, 0x000FBCDE; CHECKREG r1, 0x5678F89A; CHECKREG r2, 0xF345BCDE; CHECKREG r3, 0xF456F89A; CHECKREG r4, 0x89ABBCDE; CHECKREG r5, 0x9ABCF89A; CHECKREG r6, 0xF789BCDE; CHECKREG r7, 0xF89AF89A; pass