1# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI 2 3# VI: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00] 40x02 0x07 0x02 0x00 5 6# VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00] 70x01 0x00 0x89 0xd2 0x02 0x07 0x00 0x00 8 9# VI: v_writelane_b32 v1, s2, s3 ; encoding: [0x01,0x00,0x8a,0xd2,0x02,0x06,0x00,0x00] 100x01 0x00 0x8a 0xd2 0x02 0x06 0x00 0x00 11 12# VI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x02] 130x02 0x07 0x02 0x02 14 15# VI: v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x04] 160x02 0x07 0x02 0x04 17 18# VI: v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06] 190x02 0x07 0x02 0x06 20 21# VI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08] 220x02 0x07 0x02 0x08 23 24# VI: v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a] 250x02 0x07 0x02 0x0a 26 27# VI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c] 280x02 0x07 0x02 0x0c 29 30# VI: v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e] 310x02 0x07 0x02 0x0e 32 33# VI: v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10] 340x02 0x07 0x02 0x10 35 36# VI: v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12] 370x02 0x07 0x02 0x12 38 39# VI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14] 400x02 0x07 0x02 0x14 41 42# VI: v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16] 430x02 0x07 0x02 0x16 44 45# VI: v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18] 460x02 0x07 0x02 0x18 47 48# VI: v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a] 490x02 0x07 0x02 0x1a 50 51# VI: v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c] 520x02 0x07 0x02 0x1c 53 54# VI: v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e] 550x02 0x07 0x02 0x1e 56 57# VI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20] 580x02 0x07 0x02 0x20 59 60# VI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22] 610x02 0x07 0x02 0x22 62 63# VI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24] 640x02 0x07 0x02 0x24 65 66# VI: v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26] 670x02 0x07 0x02 0x26 68 69# VI: v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28] 700x02 0x07 0x02 0x28 71 72# VI: v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a] 730x02 0x07 0x02 0x2a 74 75# VI: v_bfm_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x93,0xd2,0x02,0x07,0x02,0x00] 760x01 0x00 0x93 0xd2 0x02 0x07 0x02 0x00 77 78# VI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c] 790x02 0x07 0x02 0x2c 80 81# VI: v_madmk_f32_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42] 820x02 0x07 0x02 0x2e 0x00 0x00 0x80 0x42 83 84# VI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42] 850x02 0x07 0x02 0x30 0x00 0x00 0x80 0x42 86 87# VI: v_bcnt_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8b,0xd2,0x02,0x07,0x02,0x00] 880x01 0x00 0x8b 0xd2 0x02 0x07 0x02 0x00 89 90# VI: v_mbcnt_lo_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8c,0xd2,0x02,0x07,0x02,0x00] 910x01 0x00 0x8c 0xd2 0x02 0x07 0x02 0x00 92 93# VI: v_mbcnt_hi_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8d,0xd2,0x02,0x07,0x02,0x00] 940x01 0x00 0x8d 0xd2 0x02 0x07 0x02 0x00 95 96# VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] 970x02 0x07 0x02 0x32 98 99# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 1000x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00 101 102# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 1030x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00 104 105# VI: v_add_i32_e64 v1, vcc, v2, v3 ; encoding: [0x01,0x6a,0x19,0xd1,0x02,0x07,0x02,0x00] 1060x01 0x6a 0x19 0xd1 0x02 0x07 0x02 0x00 107 108# VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] 1090x02 0x07 0x02 0x32 110 111# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 1120x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00 113 114# VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] 1150x02 0x07 0x02 0x34 116 117# VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00] 1180x01 0x00 0x1a 0xd1 0x02 0x07 0x02 0x00 119 120# VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] 1210x02 0x07 0x02 0x34 122 123# VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00] 1240x01 0x00 0x1a 0xd1 0x02 0x07 0x02 0x00 125 126# VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36] 1270x02 0x07 0x02 0x36 128 129# VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00] 1300x01 0x00 0x1b 0xd1 0x02 0x07 0x02 0x00 131 132# VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36] 1330x02 0x07 0x02 0x36 134 135# VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00] 1360x01 0x00 0x1b 0xd1 0x02 0x07 0x02 0x00 137 138# VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38] 1390x02 0x07 0x02 0x38 140 141# VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38] 1420x02 0x07 0x02 0x38 143 144# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0xaa,0x01] 1450x01 0x00 0x1c 0xd1 0x02 0x07 0xaa 0x01 146 147# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] 1480x01 0x00 0x1c 0xd1 0x02 0x07 0x0a 0x00 149 150# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] 1510x01 0x00 0x1c 0xd1 0x02 0x07 0x0a 0x00 152 153# FIXME: v_addc_u32_e64 v1, s[0:1], v2, v3, -1 ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x06,0x03] 154#0x01 0x00 0x1c 0xd1 0x02 0x07 0x06 0x03 155 156# FIXME: v_addc_u32_e64 v1, vcc, v2, v3, -1 ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0x06,0x03] 157#0x01 0x6a 0x1c 0xd1 0x02 0x07 0x06 0x03 158 159# VI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0xaa,0x01] 1600x01 0x6a 0x1c 0xd1 0x02 0x07 0xaa 0x01 161 162# VI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3a] 1630x02 0x07 0x02 0x3a 164 165# VI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1d,0xd1,0x02,0x07,0xaa,0x01] 1660x01 0x00 0x1d 0xd1 0x02 0x07 0xaa 0x01 167 168# VI: v_subbrev_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3c] 1690x02 0x07 0x02 0x3c 170 171# VI: v_subbrev_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1e,0xd1,0x02,0x07,0xaa,0x01] 1720x01 0x00 0x1e 0xd1 0x02 0x07 0xaa 0x01 173 174# VI: v_ldexp_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x88,0xd2,0x02,0x07,0x02,0x00] 1750x01 0x00 0x88 0xd2 0x02 0x07 0x02 0x00 176 177# VI: v_cvt_pkaccum_u8_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0xf0,0xd1,0x02,0x07,0x02,0x00] 1780x01 0x00 0xf0 0xd1 0x02 0x07 0x02 0x00 179 180# VI: v_cvt_pknorm_i16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x94,0xd2,0x02,0x07,0x02,0x00] 1810x01 0x00 0x94 0xd2 0x02 0x07 0x02 0x00 182 183# VI: v_cvt_pknorm_u16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x95,0xd2,0x02,0x07,0x02,0x00] 1840x01 0x00 0x95 0xd2 0x02 0x07 0x02 0x00 185 186# VI: v_cvt_pkrtz_f16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x96,0xd2,0x02,0x07,0x02,0x00] 1870x01 0x00 0x96 0xd2 0x02 0x07 0x02 0x00 188 189# VI: v_cvt_pk_u16_u32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x97,0xd2,0x02,0x07,0x02,0x00] 1900x01 0x00 0x97 0xd2 0x02 0x07 0x02 0x00 191 192# VI: v_cvt_pk_i16_i32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x98,0xd2,0x02,0x07,0x02,0x00] 1930x01 0x00 0x98 0xd2 0x02 0x07 0x02 0x00 194 195# VI: v_add_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e] 1960x02 0x07 0x02 0x3e 197 198# VI: v_sub_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x40] 1990x02 0x07 0x02 0x40 200 201# VI: v_subrev_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x42] 2020x02 0x07 0x02 0x42 203 204# VI: v_mul_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44] 2050x02 0x07 0x02 0x44 206 207# VI: v_mac_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46] 2080x02 0x07 0x02 0x46 209 210# VI: v_madmk_f16_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42] 2110x02 0x07 0x02 0x48 0x00 0x00 0x80 0x42 212 213# VI: v_madak_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x4a,0x00,0x00,0x80,0x42] 2140x02 0x07 0x02 0x4a 0x00 0x00 0x80 0x42 215 216# VI: v_add_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c] 2170x02 0x07 0x02 0x4c 218 219# VI: v_sub_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e] 2200x02 0x07 0x02 0x4e 221 222# VI: v_subrev_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50] 2230x02 0x07 0x02 0x50 224 225# VI: v_mul_lo_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52] 2260x02 0x07 0x02 0x52 227 228# VI: v_lshlrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54] 2290x02 0x07 0x02 0x54 230 231# VI: v_lshrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56] 2320x02 0x07 0x02 0x56 233 234# VI: v_ashrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58] 2350x02 0x07 0x02 0x58 236 237# VI: v_max_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a] 2380x02 0x07 0x02 0x5a 239 240# VI: v_min_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c] 2410x02 0x07 0x02 0x5c 242 243# VI: v_max_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e] 2440x02 0x07 0x02 0x5e 245 246# VI: v_max_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60] 2470x02 0x07 0x02 0x60 248 249# VI: v_min_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62] 2500x02 0x07 0x02 0x62 251 252# VI: v_min_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x64] 2530x02 0x07 0x02 0x64 254 255# VI: v_ldexp_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x66] 2560x02 0x07 0x02 0x66 257