//Original:/testcases/core/c_dsp32shift_bitmux/c_dsp32shift_bitmux.dsp // Spec Reference: dsp32shift bitmux # mach: bfin .include "testutils.inc" start A0 = 0; imm32 r0, 0x01230000; imm32 r1, 0x12340678; imm32 r2, 0x23450089; imm32 r3, 0x3456089a; imm32 r4, 0x456709ab; imm32 r5, 0x56780abc; imm32 r6, 0x67890bcd; imm32 r7, 0x789a0cde; //r0, r0, a0 >>= bitmux; invalid now BITMUX( R0 , R1, A0) (ASR); BITMUX( R0 , R2, A0) (ASR); BITMUX( R0 , R3, A0) (ASR); BITMUX( R0 , R4, A0) (ASR); BITMUX( R0 , R5, A0) (ASR); BITMUX( R0 , R6, A0) (ASR); BITMUX( R0 , R7, A0) (ASR); CHECKREG r1, 0x091A033C; CHECKREG r0, 0x00024600; CHECKREG r2, 0x11A28044; CHECKREG r3, 0x1A2B044D; CHECKREG r4, 0x22B384D5; CHECKREG r5, 0x2B3C055E; CHECKREG r6, 0x33C485E6; CHECKREG r7, 0x3C4D066F; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x20000000; CHECKREG r1, 0x00000022; imm32 r0, 0x01231001; imm32 r1, 0x12341678; imm32 r2, 0x13451789; imm32 r3, 0x1456189a; imm32 r4, 0x156711ab; imm32 r5, 0x16781abc; imm32 r6, 0x17891bcd; imm32 r7, 0x189a1cde; BITMUX( R1 , R0, A0) (ASR); //r1, r1, a0 >>= bitmux; BITMUX( R1 , R2, A0) (ASR); BITMUX( R1 , R3, A0) (ASR); BITMUX( R1 , R4, A0) (ASR); BITMUX( R1 , R5, A0) (ASR); BITMUX( R1 , R6, A0) (ASR); BITMUX( R1 , R7, A0) (ASR); CHECKREG r0, 0x00918800; CHECKREG r1, 0x0024682C; CHECKREG r2, 0x09A28BC4; CHECKREG r3, 0x0A2B0C4D; CHECKREG r4, 0x0AB388D5; CHECKREG r5, 0x0B3C0D5E; CHECKREG r6, 0x0BC48DE6; CHECKREG r7, 0x0C4D0E6F; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x28888000; CHECKREG r1, 0x00000077; imm32 r0, 0x31232002; imm32 r1, 0x22342678; imm32 r2, 0x23452789; imm32 r3, 0x2456289a; imm32 r4, 0x256729ab; imm32 r5, 0x26782abc; imm32 r6, 0x27892bcd; imm32 r7, 0x289a2cde; BITMUX( R2 , R0, A0) (ASR); BITMUX( R2 , R1, A0) (ASR); //r2, r2, a0 >>= bitmux; BITMUX( R2 , R3, A0) (ASR); BITMUX( R2 , R4, A0) (ASR); BITMUX( R2 , R5, A0) (ASR); BITMUX( R2 , R6, A0) (ASR); BITMUX( R2 , R7, A0) (ASR); CHECKREG r0, 0x18919001; CHECKREG r1, 0x111A133C; CHECKREG r2, 0x00468A4F; CHECKREG r3, 0x122B144D; CHECKREG r4, 0x12B394D5; CHECKREG r5, 0x133C155E; CHECKREG r6, 0x13C495E6; CHECKREG r7, 0x144D166F; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x05DCA222; CHECKREG r1, 0x00000023; imm32 r0, 0x31230003; imm32 r1, 0x32345378; imm32 r2, 0x33456389; imm32 r3, 0x3456739a; imm32 r4, 0x356783ab; imm32 r5, 0x367893bc; imm32 r6, 0x3789a3cd; imm32 r7, 0x389ab3de; BITMUX( R3 , R0, A0) (ASR); BITMUX( R3 , R1, A0) (ASR); BITMUX( R3 , R2, A0) (ASR); //r3, r3, a0 >>= bitmux; BITMUX( R3 , R4, A0) (ASR); BITMUX( R3 , R5, A0) (ASR); BITMUX( R3 , R6, A0) (ASR); BITMUX( R3 , R7, A0) (ASR); CHECKREG r0, 0x18918001; CHECKREG r1, 0x191A29BC; CHECKREG r2, 0x19A2B1C4; CHECKREG r3, 0x0068ACE7; CHECKREG r4, 0x1AB3C1D5; CHECKREG r5, 0x1B3C49DE; CHECKREG r6, 0x1BC4D1E6; CHECKREG r7, 0x1C4D59EF; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x988C1772; CHECKREG r1, 0x00000027; imm32 r0, 0x41230044; imm32 r1, 0x42345648; imm32 r2, 0x43456749; imm32 r3, 0x4456784a; imm32 r4, 0x4567894b; imm32 r5, 0x46789a4c; imm32 r6, 0x4789ab4d; imm32 r7, 0x489abc44; BITMUX( R4 , R0, A0) (ASR); BITMUX( R4 , R1, A0) (ASR); BITMUX( R4 , R2, A0) (ASR); BITMUX( R4 , R3, A0) (ASR); //r4, r4, a0 >>= bitmux; BITMUX( R4 , R5, A0) (ASR); BITMUX( R4 , R6, A0) (ASR); BITMUX( R4 , R7, A0) (ASR); CHECKREG r0, 0x20918022; CHECKREG r1, 0x211A2B24; CHECKREG r2, 0x21A2B3A4; CHECKREG r3, 0x222B3C25; CHECKREG r4, 0x008ACF12; CHECKREG r5, 0x233C4D26; CHECKREG r6, 0x23C4D5A6; CHECKREG r7, 0x244D5E22; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x949E6230; CHECKREG r1, 0x00000061; imm32 r0, 0x51235005; imm32 r1, 0x52345678; imm32 r2, 0x53455789; imm32 r3, 0x5456589a; imm32 r4, 0x556759ab; imm32 r5, 0x56785abc; imm32 r6, 0x57895bcd; imm32 r7, 0x589a5cde; BITMUX( R5 , R0, A0) (ASR); BITMUX( R5 , R1, A0) (ASR); BITMUX( R5 , R2, A0) (ASR); BITMUX( R5 , R3, A0) (ASR); BITMUX( R5 , R4, A0) (ASR); //r5, r5, a0 >>= bitmux; BITMUX( R5 , R6, A0) (ASR); BITMUX( R5 , R7, A0) (ASR); CHECKREG r0, 0x2891A802; CHECKREG r1, 0x291A2B3C; CHECKREG r2, 0x29A2ABC4; CHECKREG r3, 0x2A2B2C4D; CHECKREG r4, 0x2AB3ACD5; CHECKREG r5, 0x00ACF0B5; CHECKREG r6, 0x2BC4ADE6; CHECKREG r7, 0x2C4D2E6F; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0xC9865279; CHECKREG r1, 0x0000003D; imm32 r0, 0x61260006; imm32 r1, 0x62365678; imm32 r2, 0x63466789; imm32 r3, 0x6456789a; imm32 r4, 0x656689ab; imm32 r5, 0x66786abc; imm32 r6, 0x6786abcd; imm32 r7, 0x6896bcde; BITMUX( R6 , R0, A0) (ASR); BITMUX( R6 , R1, A0) (ASR); BITMUX( R6 , R2, A0) (ASR); BITMUX( R6 , R3, A0) (ASR); BITMUX( R6 , R4, A0) (ASR); BITMUX( R6 , R5, A0) (ASR); //r6, r6, a0 >>= bitmux; BITMUX( R6 , R7, A0) (ASR); CHECKREG r0, 0x30930003; CHECKREG r1, 0x311B2B3C; CHECKREG r2, 0x31A333C4; CHECKREG r3, 0x322B3C4D; CHECKREG r4, 0x32B344D5; CHECKREG r5, 0x333C355E; CHECKREG r6, 0x00CF0D57; CHECKREG r7, 0x344B5E6F; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0xC4F72619; CHECKREG r1, 0x00000049; imm32 r0, 0x71730007; imm32 r1, 0x72745678; imm32 r2, 0x73756789; imm32 r3, 0x7476789a; imm32 r4, 0x757789ab; imm32 r5, 0x76789abc; imm32 r6, 0x7779abcd; imm32 r7, 0x777abcde; BITMUX( R7 , R0, A0) (ASR); BITMUX( R7 , R1, A0) (ASR); BITMUX( R7 , R2, A0) (ASR); BITMUX( R7 , R3, A0) (ASR); BITMUX( R7 , R4, A0) (ASR); BITMUX( R7 , R5, A0) (ASR); BITMUX( R7 , R6, A0) (ASR); //r7, r7, a0 >>= bitmux; CHECKREG r0, 0x38B98003; CHECKREG r1, 0x393A2B3C; CHECKREG r2, 0x39BAB3C4; CHECKREG r3, 0x3A3B3C4D; CHECKREG r4, 0x3ABBC4D5; CHECKREG r5, 0x3B3C4D5E; CHECKREG r6, 0x3BBCD5E6; CHECKREG r7, 0x00EEF579; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0xD92713DC; CHECKREG r1, 0xFFFFFFCD; imm32 r0, 0x08230080; imm32 r1, 0x18345688; imm32 r2, 0x28456789; imm32 r3, 0x3856788a; imm32 r4, 0x4867898b; imm32 r5, 0x58789a8c; imm32 r6, 0x6889ab8d; imm32 r7, 0x789abc8e; //r0, r0, a0 <<= bitmux; BITMUX( R0 , R1, A0) (ASL); BITMUX( R0 , R2, A0) (ASL); BITMUX( R0 , R3, A0) (ASL); BITMUX( R0 , R4, A0) (ASL); BITMUX( R0 , R5, A0) (ASL); BITMUX( R0 , R6, A0) (ASL); BITMUX( R0 , R7, A0) (ASL); CHECKREG r1, 0x3068AD10; CHECKREG r0, 0x11804000; CHECKREG r2, 0x508ACF12; CHECKREG r3, 0x70ACF114; CHECKREG r4, 0x90CF1316; CHECKREG r5, 0xB0F13518; CHECKREG r6, 0xD113571A; CHECKREG r7, 0xF135791C; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0xC4F70010; CHECKREG r1, 0x00000049; imm32 r0, 0x09230009; imm32 r1, 0x19345679; imm32 r2, 0x29456789; imm32 r3, 0x39567899; imm32 r4, 0x496789a9; imm32 r5, 0x59789ab9; imm32 r6, 0x6989abc9; imm32 r7, 0x799abcd9; BITMUX( R1 , R0, A0) (ASL); //r1, r1, a0 <<= bitmux; BITMUX( R1 , R2, A0) (ASL); BITMUX( R1 , R3, A0) (ASL); BITMUX( R1 , R4, A0) (ASL); BITMUX( R1 , R5, A0) (ASL); BITMUX( R1 , R6, A0) (ASL); BITMUX( R1 , R7, A0) (ASL); CHECKREG r0, 0x12460012; CHECKREG r1, 0x9A2B3C80; CHECKREG r2, 0x528ACF12; CHECKREG r3, 0x72ACF132; CHECKREG r4, 0x92CF1352; CHECKREG r5, 0xB2F13572; CHECKREG r6, 0xD3135792; CHECKREG r7, 0xF33579B2; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0xC0040050; CHECKREG r1, 0x0000003D; imm32 r0, 0x0a23000a; imm32 r1, 0x1a34567a; imm32 r2, 0x2a45678a; imm32 r3, 0x3a56789a; imm32 r4, 0x4a6789aa; imm32 r5, 0x5aa89aba; imm32 r6, 0x6a89abca; imm32 r7, 0x7a9abcda; BITMUX( R2 , R0, A0) (ASL); BITMUX( R2 , R1, A0) (ASL); //r2, r2, a0 <<= bitmux; BITMUX( R2 , R3, A0) (ASL); BITMUX( R2 , R4, A0) (ASL); BITMUX( R2 , R5, A0) (ASL); BITMUX( R2 , R6, A0) (ASL); BITMUX( R2 , R7, A0) (ASL); CHECKREG r0, 0x14460014; CHECKREG r1, 0x3468ACF4; CHECKREG r2, 0x22B3C500; CHECKREG r3, 0x74ACF134; CHECKREG r4, 0x94CF1354; CHECKREG r5, 0xB5513574; CHECKREG r6, 0xD5135794; CHECKREG r7, 0xF53579B4; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x00140111; CHECKREG r1, 0x00000001; imm32 r0, 0x01b300b3; imm32 r1, 0x12b456b8; imm32 r2, 0x23b567b9; imm32 r3, 0x34b678ba; imm32 r4, 0x45b789bb; imm32 r5, 0x56b89abc; imm32 r6, 0x67b9abbd; imm32 r7, 0x78babcbe; BITMUX( R3 , R0, A0) (ASL); BITMUX( R3 , R1, A0) (ASL); BITMUX( R3 , R2, A0) (ASL); //r3, r3, a0 <<= bitmux; BITMUX( R3 , R4, A0) (ASL); BITMUX( R3 , R5, A0) (ASL); BITMUX( R3 , R6, A0) (ASL); BITMUX( R3 , R7, A0) (ASL); CHECKREG r0, 0x03660166; CHECKREG r1, 0x2568AD70; CHECKREG r2, 0x476ACF72; CHECKREG r3, 0x5B3C5D00; CHECKREG r4, 0x8B6F1376; CHECKREG r5, 0xAD713578; CHECKREG r6, 0xCF73577A; CHECKREG r7, 0xF175797C; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x00444144; CHECKREG r1, 0x00000005; imm32 r0, 0x012300c4; imm32 r1, 0x123456c8; imm32 r2, 0x234567c9; imm32 r3, 0x345678ca; imm32 r4, 0x456789cb; imm32 r5, 0x56789acc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcce; BITMUX( R4 , R0, A0) (ASL); BITMUX( R4 , R1, A0) (ASL); BITMUX( R4 , R2, A0) (ASL); BITMUX( R4 , R3, A0) (ASL); //r4, r4, a0 <<= bitmux; BITMUX( R4 , R5, A0) (ASL); BITMUX( R4 , R6, A0) (ASL); BITMUX( R4 , R7, A0) (ASL); CHECKREG r0, 0x02460188; CHECKREG r1, 0x2468AD90; CHECKREG r2, 0x468ACF92; CHECKREG r3, 0x68ACF194; CHECKREG r4, 0xB3C4E580; CHECKREG r5, 0xACF13598; CHECKREG r6, 0xCF13579A; CHECKREG r7, 0xF135799C; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x10510404; CHECKREG r1, 0x00000011; imm32 r0, 0x0c230d05; imm32 r1, 0x1c345d78; imm32 r2, 0x2c456d89; imm32 r3, 0x3c567d9a; imm32 r4, 0x4c678dab; imm32 r5, 0x5c789dbc; imm32 r6, 0x6c89adcd; imm32 r7, 0x7c9abdde; BITMUX( R5 , R0, A0) (ASL); BITMUX( R5 , R1, A0) (ASL); BITMUX( R5 , R2, A0) (ASL); BITMUX( R5 , R3, A0) (ASL); BITMUX( R5 , R4, A0) (ASL); //r5, r5, a0 <<= bitmux; BITMUX( R5 , R6, A0) (ASL); BITMUX( R5 , R7, A0) (ASL); CHECKREG r0, 0x18461A0A; CHECKREG r1, 0x3868BAF0; CHECKREG r2, 0x588ADB12; CHECKREG r3, 0x78ACFB34; CHECKREG r4, 0x98CF1B56; CHECKREG r5, 0x3C4EDE00; CHECKREG r6, 0xD9135B9A; CHECKREG r7, 0xF9357BBC; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x41010454; CHECKREG r1, 0x00000014; imm32 r0, 0x0d230e06; imm32 r1, 0x1d345e78; imm32 r2, 0x2d456e89; imm32 r3, 0x3d567e9a; imm32 r4, 0x4d678eab; imm32 r5, 0x5d789ebc; imm32 r6, 0x6d89aecd; imm32 r7, 0x7d9abede; BITMUX( R6 , R0, A0) (ASL); BITMUX( R6 , R1, A0) (ASL); BITMUX( R6 , R2, A0) (ASL); BITMUX( R6 , R3, A0) (ASL); BITMUX( R6 , R4, A0) (ASL); BITMUX( R6 , R5, A0) (ASL); //r6, r6, a0 <<= bitmux; BITMUX( R6 , R7, A0) (ASL); CHECKREG r0, 0x1A461C0C; CHECKREG r1, 0x3A68BCF0; CHECKREG r2, 0x5A8ADD12; CHECKREG r3, 0x7AACFD34; CHECKREG r4, 0x9ACF1D56; CHECKREG r5, 0xBAF13D78; CHECKREG r6, 0xC4D76680; CHECKREG r7, 0xFB357DBC; R0 = A0.w; R1 = A0.x; CHECKREG r0, 0x41150514; CHECKREG r1, 0x00000040; imm32 r0, 0x01230007; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; BITMUX( R7 , R0, A0) (ASL); BITMUX( R7 , R1, A0) (ASL); BITMUX( R7 , R2, A0) (ASL); BITMUX( R7 , R3, A0) (ASL); BITMUX( R7 , R4, A0) (ASL); BITMUX( R7 , R5, A0) (ASL); BITMUX( R7 , R6, A0) (ASL); //r7, r7, a0 <<= bitmux; CHECKREG r0, 0x0246000E; CHECKREG r1, 0x2468ACF0; CHECKREG r2, 0x468ACF12; CHECKREG r3, 0x68ACF134; CHECKREG r4, 0x8ACF1356; CHECKREG r5, 0xACF13578; CHECKREG r6, 0xCF13579A; CHECKREG r7, 0x4D5E6F00; pass