1c3ff538dSBob Wilson@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s 2a56a2e1fSOwen Anderson 3a56a2e1fSOwen Anderson.code 16 4a56a2e1fSOwen Anderson 5a56a2e1fSOwen Anderson vsra.s8 d17, d16, #8 65c7e9e5eSJim Grosbach vsra.s16 d15, d14, #16 75c7e9e5eSJim Grosbach vsra.s32 d13, d12, #32 85c7e9e5eSJim Grosbach vsra.s64 d11, d10, #64 95c7e9e5eSJim Grosbach vsra.s8 q7, q2, #8 105c7e9e5eSJim Grosbach vsra.s16 q3, q6, #16 115c7e9e5eSJim Grosbach vsra.s32 q9, q5, #32 125c7e9e5eSJim Grosbach vsra.s64 q8, q4, #64 13a56a2e1fSOwen Anderson vsra.u8 d17, d16, #8 145c7e9e5eSJim Grosbach vsra.u16 d11, d14, #11 155c7e9e5eSJim Grosbach vsra.u32 d12, d15, #22 165c7e9e5eSJim Grosbach vsra.u64 d13, d16, #54 175c7e9e5eSJim Grosbach vsra.u8 q1, q7, #8 185c7e9e5eSJim Grosbach vsra.u16 q2, q7, #6 195c7e9e5eSJim Grosbach vsra.u32 q3, q6, #21 205c7e9e5eSJim Grosbach vsra.u64 q4, q5, #25 215c7e9e5eSJim Grosbach 22*f6371b52SJim Grosbach @ Two-operand syntax variant. 23*f6371b52SJim Grosbach vsra.s8 d16, #8 24*f6371b52SJim Grosbach vsra.s16 d14, #16 25*f6371b52SJim Grosbach vsra.s32 d12, #32 26*f6371b52SJim Grosbach vsra.s64 d10, #64 27*f6371b52SJim Grosbach vsra.s8 q2, #8 28*f6371b52SJim Grosbach vsra.s16 q6, #16 29*f6371b52SJim Grosbach vsra.s32 q5, #32 30*f6371b52SJim Grosbach vsra.s64 q4, #64 31*f6371b52SJim Grosbach vsra.u8 d16, #8 32*f6371b52SJim Grosbach vsra.u16 d14, #11 33*f6371b52SJim Grosbach vsra.u32 d15, #22 34*f6371b52SJim Grosbach vsra.u64 d16, #54 35*f6371b52SJim Grosbach vsra.u8 q7, #8 36*f6371b52SJim Grosbach vsra.u16 q7, #6 37*f6371b52SJim Grosbach vsra.u32 q6, #21 38*f6371b52SJim Grosbach vsra.u64 q5, #25 39*f6371b52SJim Grosbach 405c7e9e5eSJim Grosbach@ CHECK: vsra.s8 d17, d16, #8 @ encoding: [0xc8,0xef,0x30,0x11] 415c7e9e5eSJim Grosbach@ CHECK: vsra.s16 d15, d14, #16 @ encoding: [0x90,0xef,0x1e,0xf1] 425c7e9e5eSJim Grosbach@ CHECK: vsra.s32 d13, d12, #32 @ encoding: [0xa0,0xef,0x1c,0xd1] 435c7e9e5eSJim Grosbach@ CHECK: vsra.s64 d11, d10, #64 @ encoding: [0x80,0xef,0x9a,0xb1] 445c7e9e5eSJim Grosbach@ CHECK: vsra.s8 q7, q2, #8 @ encoding: [0x88,0xef,0x54,0xe1] 455c7e9e5eSJim Grosbach@ CHECK: vsra.s16 q3, q6, #16 @ encoding: [0x90,0xef,0x5c,0x61] 465c7e9e5eSJim Grosbach@ CHECK: vsra.s32 q9, q5, #32 @ encoding: [0xe0,0xef,0x5a,0x21] 475c7e9e5eSJim Grosbach@ CHECK: vsra.s64 q8, q4, #64 @ encoding: [0xc0,0xef,0xd8,0x01] 485c7e9e5eSJim Grosbach@ CHECK: vsra.u8 d17, d16, #8 @ encoding: [0xc8,0xff,0x30,0x11] 495c7e9e5eSJim Grosbach@ CHECK: vsra.u16 d11, d14, #11 @ encoding: [0x95,0xff,0x1e,0xb1] 505c7e9e5eSJim Grosbach@ CHECK: vsra.u32 d12, d15, #22 @ encoding: [0xaa,0xff,0x1f,0xc1] 515c7e9e5eSJim Grosbach@ CHECK: vsra.u64 d13, d16, #54 @ encoding: [0x8a,0xff,0xb0,0xd1] 525c7e9e5eSJim Grosbach@ CHECK: vsra.u8 q1, q7, #8 @ encoding: [0x88,0xff,0x5e,0x21] 535c7e9e5eSJim Grosbach@ CHECK: vsra.u16 q2, q7, #6 @ encoding: [0x9a,0xff,0x5e,0x41] 545c7e9e5eSJim Grosbach@ CHECK: vsra.u32 q3, q6, #21 @ encoding: [0xab,0xff,0x5c,0x61] 555c7e9e5eSJim Grosbach@ CHECK: vsra.u64 q4, q5, #25 @ encoding: [0xa7,0xff,0xda,0x81] 565c7e9e5eSJim Grosbach 57*f6371b52SJim Grosbach@ CHECK: vsra.s8 d16, d16, #8 @ encoding: [0xc8,0xef,0x30,0x01] 58*f6371b52SJim Grosbach@ CHECK: vsra.s16 d14, d14, #16 @ encoding: [0x90,0xef,0x1e,0xe1] 59*f6371b52SJim Grosbach@ CHECK: vsra.s32 d12, d12, #32 @ encoding: [0xa0,0xef,0x1c,0xc1] 60*f6371b52SJim Grosbach@ CHECK: vsra.s64 d10, d10, #64 @ encoding: [0x80,0xef,0x9a,0xa1] 61*f6371b52SJim Grosbach@ CHECK: vsra.s8 q2, q2, #8 @ encoding: [0x88,0xef,0x54,0x41] 62*f6371b52SJim Grosbach@ CHECK: vsra.s16 q6, q6, #16 @ encoding: [0x90,0xef,0x5c,0xc1] 63*f6371b52SJim Grosbach@ CHECK: vsra.s32 q5, q5, #32 @ encoding: [0xa0,0xef,0x5a,0xa1] 64*f6371b52SJim Grosbach@ CHECK: vsra.s64 q4, q4, #64 @ encoding: [0x80,0xef,0xd8,0x81] 65*f6371b52SJim Grosbach@ CHECK: vsra.u8 d16, d16, #8 @ encoding: [0xc8,0xff,0x30,0x01] 66*f6371b52SJim Grosbach@ CHECK: vsra.u16 d14, d14, #11 @ encoding: [0x95,0xff,0x1e,0xe1] 67*f6371b52SJim Grosbach@ CHECK: vsra.u32 d15, d15, #22 @ encoding: [0xaa,0xff,0x1f,0xf1] 68*f6371b52SJim Grosbach@ CHECK: vsra.u64 d16, d16, #54 @ encoding: [0xca,0xff,0xb0,0x01] 69*f6371b52SJim Grosbach@ CHECK: vsra.u8 q7, q7, #8 @ encoding: [0x88,0xff,0x5e,0xe1] 70*f6371b52SJim Grosbach@ CHECK: vsra.u16 q7, q7, #6 @ encoding: [0x9a,0xff,0x5e,0xe1] 71*f6371b52SJim Grosbach@ CHECK: vsra.u32 q6, q6, #21 @ encoding: [0xab,0xff,0x5c,0xc1] 72*f6371b52SJim Grosbach@ CHECK: vsra.u64 q5, q5, #25 @ encoding: [0xa7,0xff,0xda,0xa1] 73*f6371b52SJim Grosbach 745c7e9e5eSJim Grosbach 755c7e9e5eSJim Grosbach vrsra.s8 d5, d26, #8 765c7e9e5eSJim Grosbach vrsra.s16 d6, d25, #16 775c7e9e5eSJim Grosbach vrsra.s32 d7, d24, #32 785c7e9e5eSJim Grosbach vrsra.s64 d14, d23, #64 795c7e9e5eSJim Grosbach vrsra.u8 d15, d22, #8 805c7e9e5eSJim Grosbach vrsra.u16 d16, d21, #16 815c7e9e5eSJim Grosbach vrsra.u32 d17, d20, #32 825c7e9e5eSJim Grosbach vrsra.u64 d18, d19, #64 835c7e9e5eSJim Grosbach vrsra.s8 q1, q2, #8 845c7e9e5eSJim Grosbach vrsra.s16 q2, q3, #16 855c7e9e5eSJim Grosbach vrsra.s32 q3, q4, #32 865c7e9e5eSJim Grosbach vrsra.s64 q4, q5, #64 875c7e9e5eSJim Grosbach vrsra.u8 q5, q6, #8 885c7e9e5eSJim Grosbach vrsra.u16 q6, q7, #16 895c7e9e5eSJim Grosbach vrsra.u32 q7, q8, #32 90a56a2e1fSOwen Anderson vrsra.u64 q8, q9, #64 915c7e9e5eSJim Grosbach 92*f6371b52SJim Grosbach @ Two-operand syntax variant. 93*f6371b52SJim Grosbach vrsra.s8 d26, #8 94*f6371b52SJim Grosbach vrsra.s16 d25, #16 95*f6371b52SJim Grosbach vrsra.s32 d24, #32 96*f6371b52SJim Grosbach vrsra.s64 d23, #64 97*f6371b52SJim Grosbach vrsra.u8 d22, #8 98*f6371b52SJim Grosbach vrsra.u16 d21, #16 99*f6371b52SJim Grosbach vrsra.u32 d20, #32 100*f6371b52SJim Grosbach vrsra.u64 d19, #64 101*f6371b52SJim Grosbach vrsra.s8 q2, #8 102*f6371b52SJim Grosbach vrsra.s16 q3, #16 103*f6371b52SJim Grosbach vrsra.s32 q4, #32 104*f6371b52SJim Grosbach vrsra.s64 q5, #64 105*f6371b52SJim Grosbach vrsra.u8 q6, #8 106*f6371b52SJim Grosbach vrsra.u16 q7, #16 107*f6371b52SJim Grosbach vrsra.u32 q8, #32 108*f6371b52SJim Grosbach vrsra.u64 q9, #64 109*f6371b52SJim Grosbach 1105c7e9e5eSJim Grosbach@ CHECK: vrsra.s8 d5, d26, #8 @ encoding: [0x88,0xef,0x3a,0x53] 1115c7e9e5eSJim Grosbach@ CHECK: vrsra.s16 d6, d25, #16 @ encoding: [0x90,0xef,0x39,0x63] 1125c7e9e5eSJim Grosbach@ CHECK: vrsra.s32 d7, d24, #32 @ encoding: [0xa0,0xef,0x38,0x73] 1135c7e9e5eSJim Grosbach@ CHECK: vrsra.s64 d14, d23, #64 @ encoding: [0x80,0xef,0xb7,0xe3] 1145c7e9e5eSJim Grosbach@ CHECK: vrsra.u8 d15, d22, #8 @ encoding: [0x88,0xff,0x36,0xf3] 1155c7e9e5eSJim Grosbach@ CHECK: vrsra.u16 d16, d21, #16 @ encoding: [0xd0,0xff,0x35,0x03] 1165c7e9e5eSJim Grosbach@ CHECK: vrsra.u32 d17, d20, #32 @ encoding: [0xe0,0xff,0x34,0x13] 1175c7e9e5eSJim Grosbach@ CHECK: vrsra.u64 d18, d19, #64 @ encoding: [0xc0,0xff,0xb3,0x23] 1185c7e9e5eSJim Grosbach@ CHECK: vrsra.s8 q1, q2, #8 @ encoding: [0x88,0xef,0x54,0x23] 1195c7e9e5eSJim Grosbach@ CHECK: vrsra.s16 q2, q3, #16 @ encoding: [0x90,0xef,0x56,0x43] 1205c7e9e5eSJim Grosbach@ CHECK: vrsra.s32 q3, q4, #32 @ encoding: [0xa0,0xef,0x58,0x63] 1215c7e9e5eSJim Grosbach@ CHECK: vrsra.s64 q4, q5, #64 @ encoding: [0x80,0xef,0xda,0x83] 1225c7e9e5eSJim Grosbach@ CHECK: vrsra.u8 q5, q6, #8 @ encoding: [0x88,0xff,0x5c,0xa3] 1235c7e9e5eSJim Grosbach@ CHECK: vrsra.u16 q6, q7, #16 @ encoding: [0x90,0xff,0x5e,0xc3] 1245c7e9e5eSJim Grosbach@ CHECK: vrsra.u32 q7, q8, #32 @ encoding: [0xa0,0xff,0x70,0xe3] 1255c7e9e5eSJim Grosbach@ CHECK: vrsra.u64 q8, q9, #64 @ encoding: [0xc0,0xff,0xf2,0x03] 1265c7e9e5eSJim Grosbach 127*f6371b52SJim Grosbach@ CHECK: vrsra.s8 d26, d26, #8 @ encoding: [0xc8,0xef,0x3a,0xa3] 128*f6371b52SJim Grosbach@ CHECK: vrsra.s16 d25, d25, #16 @ encoding: [0xd0,0xef,0x39,0x93] 129*f6371b52SJim Grosbach@ CHECK: vrsra.s32 d24, d24, #32 @ encoding: [0xe0,0xef,0x38,0x83] 130*f6371b52SJim Grosbach@ CHECK: vrsra.s64 d23, d23, #64 @ encoding: [0xc0,0xef,0xb7,0x73] 131*f6371b52SJim Grosbach@ CHECK: vrsra.u8 d22, d22, #8 @ encoding: [0xc8,0xff,0x36,0x63] 132*f6371b52SJim Grosbach@ CHECK: vrsra.u16 d21, d21, #16 @ encoding: [0xd0,0xff,0x35,0x53] 133*f6371b52SJim Grosbach@ CHECK: vrsra.u32 d20, d20, #32 @ encoding: [0xe0,0xff,0x34,0x43] 134*f6371b52SJim Grosbach@ CHECK: vrsra.u64 d19, d19, #64 @ encoding: [0xc0,0xff,0xb3,0x33] 135*f6371b52SJim Grosbach@ CHECK: vrsra.s8 q2, q2, #8 @ encoding: [0x88,0xef,0x54,0x43] 136*f6371b52SJim Grosbach@ CHECK: vrsra.s16 q3, q3, #16 @ encoding: [0x90,0xef,0x56,0x63] 137*f6371b52SJim Grosbach@ CHECK: vrsra.s32 q4, q4, #32 @ encoding: [0xa0,0xef,0x58,0x83] 138*f6371b52SJim Grosbach@ CHECK: vrsra.s64 q5, q5, #64 @ encoding: [0x80,0xef,0xda,0xa3] 139*f6371b52SJim Grosbach@ CHECK: vrsra.u8 q6, q6, #8 @ encoding: [0x88,0xff,0x5c,0xc3] 140*f6371b52SJim Grosbach@ CHECK: vrsra.u16 q7, q7, #16 @ encoding: [0x90,0xff,0x5e,0xe3] 141*f6371b52SJim Grosbach@ CHECK: vrsra.u32 q8, q8, #32 @ encoding: [0xe0,0xff,0x70,0x03] 142*f6371b52SJim Grosbach@ CHECK: vrsra.u64 q9, q9, #64 @ encoding: [0xc0,0xff,0xf2,0x23] 143*f6371b52SJim Grosbach 1445c7e9e5eSJim Grosbach 1455c7e9e5eSJim Grosbach vsli.8 d11, d12, #7 1465c7e9e5eSJim Grosbach vsli.16 d12, d13, #15 1475c7e9e5eSJim Grosbach vsli.32 d13, d14, #31 1485c7e9e5eSJim Grosbach vsli.64 d14, d15, #63 1495c7e9e5eSJim Grosbach vsli.8 q1, q8, #7 1505c7e9e5eSJim Grosbach vsli.16 q2, q7, #15 1515c7e9e5eSJim Grosbach vsli.32 q3, q4, #31 1525c7e9e5eSJim Grosbach vsli.64 q4, q5, #63 1535c7e9e5eSJim Grosbach vsri.8 d28, d11, #8 1545c7e9e5eSJim Grosbach vsri.16 d26, d12, #16 1555c7e9e5eSJim Grosbach vsri.32 d24, d13, #32 1565c7e9e5eSJim Grosbach vsri.64 d21, d14, #64 1575c7e9e5eSJim Grosbach vsri.8 q1, q8, #8 1585c7e9e5eSJim Grosbach vsri.16 q5, q2, #16 1595c7e9e5eSJim Grosbach vsri.32 q7, q4, #32 1605c7e9e5eSJim Grosbach vsri.64 q9, q6, #64 1615c7e9e5eSJim Grosbach 162*f6371b52SJim Grosbach @ Two-operand syntax variant. 163*f6371b52SJim Grosbach vsli.8 d12, #7 164*f6371b52SJim Grosbach vsli.16 d13, #15 165*f6371b52SJim Grosbach vsli.32 d14, #31 166*f6371b52SJim Grosbach vsli.64 d15, #63 167*f6371b52SJim Grosbach vsli.8 q8, #7 168*f6371b52SJim Grosbach vsli.16 q7, #15 169*f6371b52SJim Grosbach vsli.32 q4, #31 170*f6371b52SJim Grosbach vsli.64 q5, #63 171*f6371b52SJim Grosbach vsri.8 d11, #8 172*f6371b52SJim Grosbach vsri.16 d12, #16 173*f6371b52SJim Grosbach vsri.32 d13, #32 174*f6371b52SJim Grosbach vsri.64 d14, #64 175*f6371b52SJim Grosbach vsri.8 q8, #8 176*f6371b52SJim Grosbach vsri.16 q2, #16 177*f6371b52SJim Grosbach vsri.32 q4, #32 178*f6371b52SJim Grosbach vsri.64 q6, #64 179*f6371b52SJim Grosbach 1805c7e9e5eSJim Grosbach@ CHECK: vsli.8 d11, d12, #7 @ encoding: [0x8f,0xff,0x1c,0xb5] 1815c7e9e5eSJim Grosbach@ CHECK: vsli.16 d12, d13, #15 @ encoding: [0x9f,0xff,0x1d,0xc5] 1825c7e9e5eSJim Grosbach@ CHECK: vsli.32 d13, d14, #31 @ encoding: [0xbf,0xff,0x1e,0xd5] 1835c7e9e5eSJim Grosbach@ CHECK: vsli.64 d14, d15, #63 @ encoding: [0xbf,0xff,0x9f,0xe5] 1845c7e9e5eSJim Grosbach@ CHECK: vsli.8 q1, q8, #7 @ encoding: [0x8f,0xff,0x70,0x25] 1855c7e9e5eSJim Grosbach@ CHECK: vsli.16 q2, q7, #15 @ encoding: [0x9f,0xff,0x5e,0x45] 1865c7e9e5eSJim Grosbach@ CHECK: vsli.32 q3, q4, #31 @ encoding: [0xbf,0xff,0x58,0x65] 1875c7e9e5eSJim Grosbach@ CHECK: vsli.64 q4, q5, #63 @ encoding: [0xbf,0xff,0xda,0x85] 1885c7e9e5eSJim Grosbach@ CHECK: vsri.8 d28, d11, #8 @ encoding: [0xc8,0xff,0x1b,0xc4] 1895c7e9e5eSJim Grosbach@ CHECK: vsri.16 d26, d12, #16 @ encoding: [0xd0,0xff,0x1c,0xa4] 1905c7e9e5eSJim Grosbach@ CHECK: vsri.32 d24, d13, #32 @ encoding: [0xe0,0xff,0x1d,0x84] 1915c7e9e5eSJim Grosbach@ CHECK: vsri.64 d21, d14, #64 @ encoding: [0xc0,0xff,0x9e,0x54] 1925c7e9e5eSJim Grosbach@ CHECK: vsri.8 q1, q8, #8 @ encoding: [0x88,0xff,0x70,0x24] 1935c7e9e5eSJim Grosbach@ CHECK: vsri.16 q5, q2, #16 @ encoding: [0x90,0xff,0x54,0xa4] 1945c7e9e5eSJim Grosbach@ CHECK: vsri.32 q7, q4, #32 @ encoding: [0xa0,0xff,0x58,0xe4] 1955c7e9e5eSJim Grosbach@ CHECK: vsri.64 q9, q6, #64 @ encoding: [0xc0,0xff,0xdc,0x24] 196*f6371b52SJim Grosbach 197*f6371b52SJim Grosbach@ CHECK: vsli.8 d12, d12, #7 @ encoding: [0x8f,0xff,0x1c,0xc5] 198*f6371b52SJim Grosbach@ CHECK: vsli.16 d13, d13, #15 @ encoding: [0x9f,0xff,0x1d,0xd5] 199*f6371b52SJim Grosbach@ CHECK: vsli.32 d14, d14, #31 @ encoding: [0xbf,0xff,0x1e,0xe5] 200*f6371b52SJim Grosbach@ CHECK: vsli.64 d15, d15, #63 @ encoding: [0xbf,0xff,0x9f,0xf5] 201*f6371b52SJim Grosbach@ CHECK: vsli.8 q8, q8, #7 @ encoding: [0xcf,0xff,0x70,0x05] 202*f6371b52SJim Grosbach@ CHECK: vsli.16 q7, q7, #15 @ encoding: [0x9f,0xff,0x5e,0xe5] 203*f6371b52SJim Grosbach@ CHECK: vsli.32 q4, q4, #31 @ encoding: [0xbf,0xff,0x58,0x85] 204*f6371b52SJim Grosbach@ CHECK: vsli.64 q5, q5, #63 @ encoding: [0xbf,0xff,0xda,0xa5] 205*f6371b52SJim Grosbach@ CHECK: vsri.8 d11, d11, #8 @ encoding: [0x88,0xff,0x1b,0xb4] 206*f6371b52SJim Grosbach@ CHECK: vsri.16 d12, d12, #16 @ encoding: [0x90,0xff,0x1c,0xc4] 207*f6371b52SJim Grosbach@ CHECK: vsri.32 d13, d13, #32 @ encoding: [0xa0,0xff,0x1d,0xd4] 208*f6371b52SJim Grosbach@ CHECK: vsri.64 d14, d14, #64 @ encoding: [0x80,0xff,0x9e,0xe4] 209*f6371b52SJim Grosbach@ CHECK: vsri.8 q8, q8, #8 @ encoding: [0xc8,0xff,0x70,0x04] 210*f6371b52SJim Grosbach@ CHECK: vsri.16 q2, q2, #16 @ encoding: [0x90,0xff,0x54,0x44] 211*f6371b52SJim Grosbach@ CHECK: vsri.32 q4, q4, #32 @ encoding: [0xa0,0xff,0x58,0x84] 212*f6371b52SJim Grosbach@ CHECK: vsri.64 q6, q6, #64 @ encoding: [0x80,0xff,0xdc,0xc4] 213