1// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI 2// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI 3// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI 4// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI 5 6// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI 7// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI 8// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI 9// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOVI 10 11//===----------------------------------------------------------------------===// 12// Generic Checks for floating-point instructions (These have modifiers). 13//===----------------------------------------------------------------------===// 14 15// TODO: 64-bit encoding of instructions with modifiers 16 17// _e32 suffix 18// SICI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06] 19v_add_f32_e32 v1, v2, v3 20 21// src0 inline immediate 22// SICI: v_add_f32_e32 v1, 1.0, v3 ; encoding: [0xf2,0x06,0x02,0x06] 23v_add_f32 v1, 1.0, v3 24 25// src0 negative inline immediate 26// SICI: v_add_f32_e32 v1, -1.0, v3 ; encoding: [0xf3,0x06,0x02,0x06] 27v_add_f32 v1, -1.0, v3 28 29// src0 literal 30// SICI: v_add_f32_e32 v1, 0x42c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0x42] 31v_add_f32 v1, 100.0, v3 32 33// src0 negative literal 34// SICI: v_add_f32_e32 v1, 0xc2c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0xc2] 35v_add_f32 v1, -100.0, v3 36 37//===----------------------------------------------------------------------===// 38// Generic Checks for integer instructions (These don't have modifiers). 39//===----------------------------------------------------------------------===// 40 41// _e32 suffix 42// SICI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12] 43v_mul_i32_i24_e32 v1, v2, v3 44 45// _e64 suffix 46// SICI: v_mul_i32_i24_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x02,0x00] 47v_mul_i32_i24_e64 v1, v2, v3 48 49// src0 inline 50// SICI: v_mul_i32_i24_e32 v1, 3, v3 ; encoding: [0x83,0x06,0x02,0x12] 51v_mul_i32_i24 v1, 3, v3 52 53// src0 negative inline 54// SICI: v_mul_i32_i24_e32 v1, -3, v3 ; encoding: [0xc3,0x06,0x02,0x12] 55v_mul_i32_i24 v1, -3, v3 56 57// src1 inline 58// SICI: v_mul_i32_i24_e64 v1, v2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x01,0x00] 59v_mul_i32_i24 v1, v2, 3 60 61// src1 negative inline 62// SICI: v_mul_i32_i24_e64 v1, v2, -3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x87,0x01,0x00] 63v_mul_i32_i24 v1, v2, -3 64 65// src0 literal 66// SICI: v_mul_i32_i24_e32 v1, 0x64, v3 ; encoding: [0xff,0x06,0x02,0x12,0x64,0x00,0x00,0x00] 67v_mul_i32_i24 v1, 100, v3 68 69// src1 negative literal 70// SICI: v_mul_i32_i24_e32 v1, 0xffffff9c, v3 ; encoding: [0xff,0x06,0x02,0x12,0x9c,0xff,0xff,0xff] 71v_mul_i32_i24 v1, -100, v3 72 73//===----------------------------------------------------------------------===// 74// Checks for legal operands 75//===----------------------------------------------------------------------===// 76 77// src0 sgpr 78// SICI: v_mul_i32_i24_e32 v1, s2, v3 ; encoding: [0x02,0x06,0x02,0x12] 79v_mul_i32_i24 v1, s2, v3 80 81// src1 sgpr 82// SICI: v_mul_i32_i24_e64 v1, v2, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x00,0x00] 83v_mul_i32_i24 v1, v2, s3 84 85// src0, src1 same sgpr 86// SICI: v_mul_i32_i24_e64 v1, s2, s2 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x04,0x00,0x00] 87v_mul_i32_i24 v1, s2, s2 88 89// src0 sgpr, src1 inline 90// SICI: v_mul_i32_i24_e64 v1, s2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x06,0x01,0x00] 91v_mul_i32_i24 v1, s2, 3 92 93// src0 inline src1 sgpr 94// SICI: v_mul_i32_i24_e64 v1, 3, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x83,0x06,0x00,0x00] 95v_mul_i32_i24 v1, 3, s3 96 97//===----------------------------------------------------------------------===// 98// Instructions 99//===----------------------------------------------------------------------===// 100 101// GCN: v_cndmask_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x00] 102v_cndmask_b32 v1, v2, v3 103 104// SICI: v_readlane_b32 s1, v2, s3 ; encoding: [0x02,0x07,0x02,0x02] 105// VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00] 106v_readlane_b32 s1, v2, s3 107 108// SICI: v_writelane_b32 v1, s2, s3 ; encoding: [0x02,0x06,0x02,0x04] 109// VI: v_writelane_b32 v1, s2, s3 ; encoding: [0x01,0x00,0x8a,0xd2,0x02,0x06,0x00,0x00] 110v_writelane_b32 v1, s2, s3 111 112// SICI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06] 113// VI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x02] 114v_add_f32 v1, v2, v3 115 116// SICI: v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08] 117// VI: v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x04] 118v_sub_f32 v1, v2, v3 119 120// SICI: v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a] 121// VI: v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06] 122v_subrev_f32 v1, v2, v3 123 124// SICI: v_mac_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c] 125// NOVI: error: instruction not supported on this GPU 126// NOVI: v_mac_legacy_f32 v1, v2, v3 127v_mac_legacy_f32 v1, v2, v3 128 129// SICI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e] 130// VI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08] 131v_mul_legacy_f32_e32 v1, v2, v3 132 133// SICI: v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10] 134// VI: v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a] 135v_mul_f32 v1, v2, v3 136 137// SICI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12] 138// VI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c] 139v_mul_i32_i24 v1, v2, v3 140 141// SICI: v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14] 142// VI: v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e] 143v_mul_hi_i32_i24 v1, v2, v3 144 145// SICI: v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16] 146// VI: v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10] 147v_mul_u32_u24 v1, v2, v3 148 149// SICI: v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18] 150// VI: v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12] 151v_mul_hi_u32_u24 v1, v2, v3 152 153// SICI: v_min_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a] 154// NOVI: error: instruction not supported on this GPU 155// NOVI: v_min_legacy_f32_e32 v1, v2, v3 156v_min_legacy_f32_e32 v1, v2, v3 157 158// SICI: v_max_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c] 159// NOVI: error: instruction not supported on this GPU 160// NOVI: v_max_legacy_f32 v1, v2, v3 161v_max_legacy_f32 v1, v2, v3 162 163// SICI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e] 164// VI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14] 165v_min_f32_e32 v1, v2, v3 166 167// SICI: v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20] 168// VI: v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16] 169v_max_f32 v1, v2 v3 170 171// SICI: v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22] 172// VI: v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18] 173v_min_i32 v1, v2, v3 174 175// SICI: v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24] 176// VI: v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a] 177v_max_i32 v1, v2, v3 178 179// SICI: v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26] 180// VI: v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c] 181v_min_u32 v1, v2, v3 182 183// SICI: v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28] 184// VI: v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e] 185v_max_u32 v1, v2, v3 186 187// SICI: v_lshr_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a] 188// NOVI: error: instruction not supported on this GPU 189// NOVI: v_lshr_b32 v1, v2, v3 190v_lshr_b32 v1, v2, v3 191 192// SICI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c] 193// VI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20] 194v_lshrrev_b32 v1, v2, v3 195 196// SICI: v_ashr_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2e] 197// NOVI: error: instruction not supported on this GPU 198// NOVI: v_ashr_i32 v1, v2, v3 199v_ashr_i32 v1, v2, v3 200 201// SICI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x30] 202// VI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22] 203v_ashrrev_i32 v1, v2, v3 204 205// SICI: v_lshl_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] 206// NOVI: error: instruction not supported on this GPU 207// NOVI: v_lshl_b32_e32 v1, v2, v3 208v_lshl_b32_e32 v1, v2, v3 209 210// SICI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] 211// VI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24] 212v_lshlrev_b32 v1, v2, v3 213 214// SICI: v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x36] 215// VI: v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26] 216v_and_b32 v1, v2, v3 217 218// SICI: v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x38] 219// VI: v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28] 220v_or_b32 v1, v2, v3 221 222// SICI: v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3a] 223// VI: v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a] 224v_xor_b32 v1, v2, v3 225 226// SICI: v_bfm_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3c] 227// VI: v_bfm_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x93,0xd2,0x02,0x07,0x02,0x00] 228v_bfm_b32 v1, v2, v3 229 230// SICI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e] 231// VI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c] 232v_mac_f32 v1, v2, v3 233 234// SICI: v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x40,0x00,0x00,0x80,0x42] 235// VI: v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42] 236v_madmk_f32 v1, v2, v3, 64.0 237 238// SICI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x42,0x00,0x00,0x80,0x42] 239// VI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42] 240v_madak_f32 v1, v2, v3, 64.0 241 242// SICI: v_bcnt_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44] 243// VI: v_bcnt_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8b,0xd2,0x02,0x07,0x02,0x00] 244v_bcnt_u32_b32 v1, v2, v3 245 246// SICI: v_mbcnt_lo_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46] 247// VI: v_mbcnt_lo_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8c,0xd2,0x02,0x07,0x02,0x00] 248v_mbcnt_lo_u32_b32 v1, v2, v3 249 250// SICI: v_mbcnt_hi_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x48] 251// VI: v_mbcnt_hi_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8d,0xd2,0x02,0x07,0x02,0x00] 252v_mbcnt_hi_u32_b32 v1, v2, v3 253 254// SICI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4a] 255// VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] 256v_add_i32 v1, vcc, v2, v3 257 258// SICI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00] 259// VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 260v_add_i32 v1, s[0:1], v2, v3 261 262// SICI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00] 263// VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 264v_add_i32_e64 v1, s[0:1], v2, v3 265 266// SICI: v_add_i32_e64 v1, vcc, v2, v3 ; encoding: [0x01,0x6a,0x4a,0xd2,0x02,0x07,0x02,0x00] 267// VI: v_add_i32_e64 v1, vcc, v2, v3 ; encoding: [0x01,0x6a,0x19,0xd1,0x02,0x07,0x02,0x00] 268v_add_i32_e64 v1, vcc, v2, v3 269 270// SICI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4a] 271// VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] 272v_add_u32 v1, vcc, v2, v3 273 274// SICI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00] 275// VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00] 276v_add_u32 v1, s[0:1], v2, v3 277 278// SICI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c] 279// VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] 280v_sub_i32 v1, vcc, v2, v3 281 282// SICI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x07,0x02,0x00] 283// VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00] 284v_sub_i32 v1, s[0:1], v2, v3 285 286// SICI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c] 287// VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] 288v_sub_u32 v1, vcc, v2, v3 289 290// SICI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x07,0x02,0x00] 291// VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00] 292v_sub_u32 v1, s[0:1], v2, v3 293 294// SICI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e] 295// VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36] 296v_subrev_i32 v1, vcc, v2, v3 297 298// SICI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4e,0xd2,0x02,0x07,0x02,0x00] 299// VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00] 300v_subrev_i32 v1, s[0:1], v2, v3 301 302// SICI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e] 303// VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36] 304v_subrev_u32 v1, vcc, v2, v3 305 306// SICI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x4e,0xd2,0x02,0x07,0x02,0x00] 307// VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00] 308v_subrev_u32 v1, s[0:1], v2, v3 309 310// SICI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x50] 311// VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38] 312v_addc_u32 v1, vcc, v2, v3, vcc 313 314// SICI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x50] 315// VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38] 316v_addc_u32_e32 v1, vcc, v2, v3, vcc 317 318 319// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0xaa,0x01] 320// VI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0xaa,0x01] 321v_addc_u32 v1, s[0:1], v2, v3, vcc 322 323// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] 324// VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] 325v_addc_u32 v1, s[0:1], v2, v3, s[2:3] 326 327// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] 328// VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] 329v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] 330 331// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, -1 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x06,0x03] 332// VI: v_addc_u32_e64 v1, s[0:1], v2, v3, -1 ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x06,0x03] 333v_addc_u32_e64 v1, s[0:1], v2, v3, -1 334 335// SI: v_addc_u32_e64 v1, vcc, v2, v3, -1 ; encoding: [0x01,0x6a,0x50,0xd2,0x02,0x07,0x06,0x03] 336// VI: v_addc_u32_e64 v1, vcc, v2, v3, -1 ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0x06,0x03] 337v_addc_u32_e64 v1, vcc, v2, v3, -1 338 339// SI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x50,0xd2,0x02,0x07,0xaa,0x01] 340// VI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0xaa,0x01] 341v_addc_u32_e64 v1, vcc, v2, v3, vcc 342 343// SI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x52] 344// VI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3a] 345v_subb_u32 v1, vcc, v2, v3, vcc 346 347// SI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x52,0xd2,0x02,0x07,0xaa,0x01] 348// VI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1d,0xd1,0x02,0x07,0xaa,0x01] 349v_subb_u32 v1, s[0:1], v2, v3, vcc 350 351// SICI: v_subbrev_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x54] 352// VI: v_subbrev_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3c] 353v_subbrev_u32 v1, vcc, v2, v3, vcc 354 355// SICI: v_subbrev_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x54,0xd2,0x02,0x07,0xaa,0x01] 356// VI: v_subbrev_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1e,0xd1,0x02,0x07,0xaa,0x01] 357v_subbrev_u32 v1, s[0:1], v2, v3, vcc 358 359// SICI: v_ldexp_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56] 360// VI: v_ldexp_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x88,0xd2,0x02,0x07,0x02,0x00] 361v_ldexp_f32 v1, v2, v3 362 363// SICI: v_cvt_pkaccum_u8_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58] 364// VI: v_cvt_pkaccum_u8_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0xf0,0xd1,0x02,0x07,0x02,0x00] 365v_cvt_pkaccum_u8_f32 v1, v2, v3 366 367// SICI: v_cvt_pknorm_i16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a] 368// VI: v_cvt_pknorm_i16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x94,0xd2,0x02,0x07,0x02,0x00] 369v_cvt_pknorm_i16_f32 v1, v2, v3 370 371// SICI: v_cvt_pknorm_u16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c] 372// VI: v_cvt_pknorm_u16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x95,0xd2,0x02,0x07,0x02,0x00] 373v_cvt_pknorm_u16_f32 v1, v2, v3 374 375// SICI: v_cvt_pkrtz_f16_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e] 376// VI: v_cvt_pkrtz_f16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x96,0xd2,0x02,0x07,0x02,0x00] 377v_cvt_pkrtz_f16_f32 v1, v2, v3 378 379// SICI: v_cvt_pk_u16_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60] 380// VI: v_cvt_pk_u16_u32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x97,0xd2,0x02,0x07,0x02,0x00] 381v_cvt_pk_u16_u32 v1, v2, v3 382 383// SICI: v_cvt_pk_i16_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62] 384// VI: v_cvt_pk_i16_i32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x98,0xd2,0x02,0x07,0x02,0x00] 385v_cvt_pk_i16_i32 v1, v2, v3 386 387// NOSICI: error: instruction not supported on this GPU 388// NOSICI: v_add_f16 v1, v2, v3 389// VI: v_add_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e] 390v_add_f16 v1, v2, v3 391 392// NOSICI: error: instruction not supported on this GPU 393// NOSICI: v_sub_f16 v1, v2, v3 394// VI: v_sub_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x40] 395v_sub_f16 v1, v2, v3 396 397// NOSICI: error: instruction not supported on this GPU 398// NOSICI: v_subrev_f16 v1, v2, v3 399// VI: v_subrev_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x42] 400v_subrev_f16 v1, v2, v3 401 402// NOSICI: error: instruction not supported on this GPU 403// NOSICI: v_mul_f16 v1, v2, v3 404// VI: v_mul_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44] 405v_mul_f16 v1, v2, v3 406 407// NOSICI: error: instruction not supported on this GPU 408// NOSICI: v_mac_f16 v1, v2, v3 409// VI: v_mac_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46] 410v_mac_f16 v1, v2, v3 411 412// NOSICI: error: instruction not supported on this GPU 413// NOSICI: v_madmk_f16 v1, v2, v3, 64.0 414// VI: v_madmk_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42] 415v_madmk_f16 v1, v2, v3, 64.0 416 417// NOSICI: error: instruction not supported on this GPU 418// NOSICI: v_madak_f16 v1, v2, v3, 64.0 419// VI: v_madak_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x4a,0x00,0x00,0x80,0x42] 420v_madak_f16 v1, v2, v3, 64.0 421 422// NOSICI: error: instruction not supported on this GPU 423// NOSICI: v_add_u16 v1, v2, v3 424// VI: v_add_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c] 425v_add_u16 v1, v2, v3 426 427// NOSICI: error: instruction not supported on this GPU 428// NOSICI: v_sub_u16 v1, v2, v3 429// VI: v_sub_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e] 430v_sub_u16 v1, v2, v3 431 432// NOSICI: error: instruction not supported on this GPU 433// NOSICI: v_subrev_u16 v1, v2, v3 434// VI: v_subrev_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50] 435v_subrev_u16 v1, v2, v3 436 437// NOSICI: error: instruction not supported on this GPU 438// NOSICI: v_mul_lo_u16 v1, v2, v3 439// VI: v_mul_lo_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52] 440v_mul_lo_u16 v1, v2, v3 441 442// NOSICI: error: instruction not supported on this GPU 443// NOSICI: v_lshlrev_b16 v1, v2, v3 444// VI: v_lshlrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54] 445v_lshlrev_b16 v1, v2, v3 446 447// NOSICI: error: instruction not supported on this GPU 448// NOSICI: v_lshrrev_b16 v1, v2, v3 449// VI: v_lshrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56] 450v_lshrrev_b16 v1, v2, v3 451 452// NOSICI: error: instruction not supported on this GPU 453// NOSICI: v_ashrrev_b16 v1, v2, v3 454// VI: v_ashrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58] 455v_ashrrev_b16 v1, v2, v3 456 457// NOSICI: error: instruction not supported on this GPU 458// NOSICI: v_max_f16 v1, v2, v3 459// VI: v_max_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a] 460v_max_f16 v1, v2, v3 461 462// NOSICI: error: instruction not supported on this GPU 463// NOSICI: v_min_f16 v1, v2, v3 464// VI: v_min_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c] 465v_min_f16 v1, v2, v3 466 467// NOSICI: error: instruction not supported on this GPU 468// NOSICI: v_max_u16 v1, v2, v3 469// VI: v_max_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e] 470v_max_u16 v1, v2, v3 471 472// NOSICI: error: instruction not supported on this GPU 473// NOSICI: v_max_i16 v1, v2, v3 474// VI: v_max_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60] 475v_max_i16 v1, v2, v3 476 477// NOSICI: error: instruction not supported on this GPU 478// NOSICI: v_min_u16 v1, v2, v3 479// VI: v_min_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62] 480v_min_u16 v1, v2, v3 481 482// NOSICI: error: instruction not supported on this GPU 483// NOSICI: v_min_i16 v1, v2, v3 484// VI: v_min_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x64] 485v_min_i16 v1, v2, v3 486 487// NOSICI: error: instruction not supported on this GPU 488// NOSICI: v_ldexp_f16 v1, v2, v3 489// VI: v_ldexp_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x66] 490v_ldexp_f16 v1, v2, v3 491