1// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI 2// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck %s --check-prefix=CI --check-prefix=SICI 3// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI 4 5// Make sure interp instructions disassemble regardless of lds bank count 6// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck %s --check-prefix=VI 7 8// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI --implicit-check-not=error: 9// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck %s -check-prefix=NOCI --check-prefix=NOSICI --implicit-check-not=error: 10// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error: 11// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s 12 13//===----------------------------------------------------------------------===// 14// VOPC Instructions 15//===----------------------------------------------------------------------===// 16 17// Test forced e64 encoding 18 19v_cmp_lt_f32_e64 s[2:3], v4, -v6 20// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x02,0xd0,0x04,0x0d,0x02,0x40] 21// VI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x40] 22 23// Test forcing e64 with vcc dst 24 25v_cmp_lt_f32_e64 vcc, v4, v6 26// SICI: v_cmp_lt_f32_e64 vcc, v4, v6 ; encoding: [0x6a,0x00,0x02,0xd0,0x04,0x0d,0x02,0x00] 27// VI: v_cmp_lt_f32_e64 vcc, v4, v6 ; encoding: [0x6a,0x00,0x41,0xd0,0x04,0x0d,0x02,0x00] 28 29// 30// Modifier tests: 31// 32 33v_cmp_lt_f32 s[2:3] -v4, v6 34// SICI: v_cmp_lt_f32_e64 s[2:3], -v4, v6 ; encoding: [0x02,0x00,0x02,0xd0,0x04,0x0d,0x02,0x20] 35// VI: v_cmp_lt_f32_e64 s[2:3], -v4, v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x20] 36 37v_cmp_lt_f32 s[2:3] v4, -v6 38// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x02,0xd0,0x04,0x0d,0x02,0x40] 39// VI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x40] 40 41v_cmp_lt_f32 s[2:3] -v4, -v6 42// SICI: v_cmp_lt_f32_e64 s[2:3], -v4, -v6 ; encoding: [0x02,0x00,0x02,0xd0,0x04,0x0d,0x02,0x60] 43// VI: v_cmp_lt_f32_e64 s[2:3], -v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x60] 44 45v_cmp_lt_f32 s[2:3] |v4|, v6 46// SICI: v_cmp_lt_f32_e64 s[2:3], |v4|, v6 ; encoding: [0x02,0x01,0x02,0xd0,0x04,0x0d,0x02,0x00] 47// VI: v_cmp_lt_f32_e64 s[2:3], |v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x00] 48 49v_cmp_lt_f32 s[2:3] v4, |v6| 50// SICI: v_cmp_lt_f32_e64 s[2:3], v4, |v6| ; encoding: [0x02,0x02,0x02,0xd0,0x04,0x0d,0x02,0x00] 51// VI: v_cmp_lt_f32_e64 s[2:3], v4, |v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x00] 52 53v_cmp_lt_f32 s[2:3] |v4|, |v6| 54// SICI: v_cmp_lt_f32_e64 s[2:3], |v4|, |v6| ; encoding: [0x02,0x03,0x02,0xd0,0x04,0x0d,0x02,0x00] 55// VI: v_cmp_lt_f32_e64 s[2:3], |v4|, |v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x00] 56 57v_cmp_lt_f32 s[2:3] -|v4|, v6 58// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x02,0xd0,0x04,0x0d,0x02,0x20] 59// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20] 60 61v_cmp_lt_f32 s[2:3] -abs(v4), v6 62// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x02,0xd0,0x04,0x0d,0x02,0x20] 63// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20] 64 65v_cmp_lt_f32 s[2:3] v4, -|v6| 66// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x02,0xd0,0x04,0x0d,0x02,0x40] 67// VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40] 68 69v_cmp_lt_f32 s[2:3] v4, -abs(v6) 70// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x02,0xd0,0x04,0x0d,0x02,0x40] 71// VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40] 72 73v_cmp_lt_f32 s[2:3] -|v4|, -|v6| 74// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x02,0xd0,0x04,0x0d,0x02,0x60] 75// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60] 76 77v_cmp_lt_f32 s[2:3] -abs(v4), -abs(v6) 78// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x02,0xd0,0x04,0x0d,0x02,0x60] 79// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60] 80 81// 82// Instruction tests: 83// 84 85v_cmp_f_f32 s[2:3], v4, v6 86// SICI: v_cmp_f_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x00,0xd0,0x04,0x0d,0x02,0x00] 87// VI: v_cmp_f_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x40,0xd0,0x04,0x0d,0x02,0x00] 88 89v_cmp_lt_f32 s[2:3], v4, v6 90// SICI: v_cmp_lt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x02,0xd0,0x04,0x0d,0x02,0x00] 91// VI: v_cmp_lt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x00] 92 93v_cmp_eq_f32 s[2:3], v4, v6 94// SICI: v_cmp_eq_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x04,0xd0,0x04,0x0d,0x02,0x00] 95// VI: v_cmp_eq_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x42,0xd0,0x04,0x0d,0x02,0x00] 96 97v_cmp_le_f32 s[2:3], v4, v6 98// SICI: v_cmp_le_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x06,0xd0,0x04,0x0d,0x02,0x00] 99// VI: v_cmp_le_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x43,0xd0,0x04,0x0d,0x02,0x00] 100 101v_cmp_gt_f32 s[2:3], v4, v6 102// SICI: v_cmp_gt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x08,0xd0,0x04,0x0d,0x02,0x00] 103// VI: v_cmp_gt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x44,0xd0,0x04,0x0d,0x02,0x00] 104 105v_cmp_lg_f32 s[2:3], v4, v6 106// SICI: v_cmp_lg_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x0a,0xd0,0x04,0x0d,0x02,0x00] 107// VI: v_cmp_lg_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x45,0xd0,0x04,0x0d,0x02,0x00] 108 109v_cmp_ge_f32 s[2:3], v4, v6 110// SICI: v_cmp_ge_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x0c,0xd0,0x04,0x0d,0x02,0x00] 111// VI: v_cmp_ge_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x46,0xd0,0x04,0x0d,0x02,0x00] 112 113// TODO: Add tests for the rest of v_cmp_*_f32 114// TODO: Add tests for v_cmpx_*_f32 115 116v_cmp_f_f64 s[2:3], v[4:5], v[6:7] 117// SICI: v_cmp_f_f64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0x40,0xd0,0x04,0x0d,0x02,0x00] 118// VI: v_cmp_f_f64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0x60,0xd0,0x04,0x0d,0x02,0x00] 119 120// TODO: Add tests for the rest of v_cmp_*_f64 121// TODO: Add tests for the rest of the floating-point comparision instructions. 122 123v_cmp_f_i32 s[2:3], v4, v6 124// SICI: v_cmp_f_i32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x00,0xd1,0x04,0x0d,0x02,0x00] 125// VI: v_cmp_f_i32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0xc0,0xd0,0x04,0x0d,0x02,0x00] 126 127// TODO: Add test for the rest of v_cmp_*_i32 128 129v_cmp_f_i64 s[2:3], v[4:5], v[6:7] 130// SICI: v_cmp_f_i64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0x40,0xd1,0x04,0x0d,0x02,0x00] 131// VI: v_cmp_f_i64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0xe0,0xd0,0x04,0x0d,0x02,0x00] 132 133// TODO: Add tests for the rest of the instructions. 134 135//===----------------------------------------------------------------------===// 136// VOP1 Instructions 137//===----------------------------------------------------------------------===// 138 139// Test forced e64 encoding with e32 operands 140 141v_mov_b32_e64 v1, v2 142// SICI: v_mov_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x02,0xd3,0x02,0x01,0x00,0x00] 143// VI: v_mov_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x41,0xd1,0x02,0x01,0x00,0x00] 144 145// Force e64 encoding for special instructions. 146// FIXME, we should be printing the _e64 suffix for v_nop and v_clrexcp. 147 148v_nop_e64 149// SICI: v_nop ; encoding: [0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x00] 150// VI: v_nop ; encoding: [0x00,0x00,0x40,0xd1,0x00,0x00,0x00,0x00] 151 152v_clrexcp_e64 153// SICI: v_clrexcp ; encoding: [0x00,0x00,0x82,0xd3,0x00,0x00,0x00,0x00] 154// VI: v_clrexcp ; encoding: [0x00,0x00,0x75,0xd1,0x00,0x00,0x00,0x00] 155 156// 157// Modifier tests: 158// 159 160v_fract_f32 v1, -v2 161// SICI: v_fract_f32_e64 v1, -v2 ; encoding: [0x01,0x00,0x40,0xd3,0x02,0x01,0x00,0x20] 162// VI: v_fract_f32_e64 v1, -v2 ; encoding: [0x01,0x00,0x5b,0xd1,0x02,0x01,0x00,0x20] 163 164v_fract_f32 v1, |v2| 165// SICI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x00] 166// VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00] 167 168v_fract_f32 v1, abs(v2) 169// SICI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x00] 170// VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00] 171 172v_fract_f32 v1, -|v2| 173// SICI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x20] 174// VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20] 175 176v_fract_f32 v1, -abs(v2) 177// SICI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x20] 178// VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20] 179 180v_fract_f32 v1, v2 clamp 181// SICI: v_fract_f32_e64 v1, v2 clamp ; encoding: [0x01,0x08,0x40,0xd3,0x02,0x01,0x00,0x00] 182// VI: v_fract_f32_e64 v1, v2 clamp ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x00] 183 184v_fract_f32 v1, v2 mul:2 185// SICI: v_fract_f32_e64 v1, v2 mul:2 ; encoding: [0x01,0x00,0x40,0xd3,0x02,0x01,0x00,0x08] 186// VI: v_fract_f32_e64 v1, v2 mul:2 ; encoding: [0x01,0x00,0x5b,0xd1,0x02,0x01,0x00,0x08] 187 188v_fract_f32 v1, v2, clamp div:2 189// SICI: v_fract_f32_e64 v1, v2 clamp div:2 ; encoding: [0x01,0x08,0x40,0xd3,0x02,0x01,0x00,0x18] 190// VI: v_fract_f32_e64 v1, v2 clamp div:2 ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x18] 191 192// TODO: Finish VOP1 193 194///===---------------------------------------------------------------------===// 195// VOP2 Instructions 196///===---------------------------------------------------------------------===// 197 198// Test forced e64 encoding with e32 operands 199 200v_add_f32_e64 v1, v3, v5 201// SICI: v_add_f32_e64 v1, v3, v5 ; encoding: [0x01,0x00,0x06,0xd2,0x03,0x0b,0x02,0x00] 202// VI: v_add_f32_e64 v1, v3, v5 ; encoding: [0x01,0x00,0x01,0xd1,0x03,0x0b,0x02,0x00] 203 204 205// TODO: Modifier tests (v_cndmask done) 206 207v_cndmask_b32 v1, v3, v5, s[4:5] 208// SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00] 209// VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00] 210 211v_cndmask_b32_e64 v1, v3, v5, s[4:5] 212// SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00] 213// VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00] 214 215v_cndmask_b32_e64 v1, v3, v5, vcc 216// SICI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0xaa,0x01] 217// VI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0xaa,0x01] 218 219v_cndmask_b32 v1, -v3, v5, s[4:5] 220// SICI: v_cndmask_b32_e64 v1, -v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x20] 221// VI: v_cndmask_b32_e64 v1, -v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x20] 222 223v_cndmask_b32_e64 v1, v3, |v5|, s[4:5] 224// SICI: v_cndmask_b32_e64 v1, v3, |v5|, s[4:5] ; encoding: [0x01,0x02,0x00,0xd2,0x03,0x0b,0x12,0x00] 225// VI: v_cndmask_b32_e64 v1, v3, |v5|, s[4:5] ; encoding: [0x01,0x02,0x00,0xd1,0x03,0x0b,0x12,0x00] 226 227v_cndmask_b32_e64 v1, -abs(v3), v5, vcc 228// SICI: v_cndmask_b32_e64 v1, -|v3|, v5, vcc ; encoding: [0x01,0x01,0x00,0xd2,0x03,0x0b,0xaa,0x21] 229// VI: v_cndmask_b32_e64 v1, -|v3|, v5, vcc ; encoding: [0x01,0x01,0x00,0xd1,0x03,0x0b,0xaa,0x21] 230 231//TODO: readlane, writelane 232 233v_add_f32 v1, v3, s5 234// SICI: v_add_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x06,0xd2,0x03,0x0b,0x00,0x00] 235// VI: v_add_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x01,0xd1,0x03,0x0b,0x00,0x00] 236 237v_sub_f32 v1, v3, s5 238// SICI: v_sub_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x08,0xd2,0x03,0x0b,0x00,0x00] 239// VI: v_sub_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x02,0xd1,0x03,0x0b,0x00,0x00] 240 241v_subrev_f32 v1, v3, s5 242// SICI: v_subrev_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x0a,0xd2,0x03,0x0b,0x00,0x00] 243// VI: v_subrev_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x03,0xd1,0x03,0x0b,0x00,0x00] 244 245v_mac_legacy_f32 v1, v3, s5 246// SICI: v_mac_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x0c,0xd2,0x03,0x0b,0x00,0x00] 247// NOVI: error: instruction not supported on this GPU 248 249v_mul_legacy_f32 v1, v3, s5 250// SICI: v_mul_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x0e,0xd2,0x03,0x0b,0x00,0x00] 251// VI: v_mul_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x04,0xd1,0x03,0x0b,0x00,0x00] 252 253v_mul_f32 v1, v3, s5 254// SICI: v_mul_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x10,0xd2,0x03,0x0b,0x00,0x00] 255// VI: v_mul_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x05,0xd1,0x03,0x0b,0x00,0x00] 256 257v_mul_i32_i24 v1, v3, s5 258// SICI: v_mul_i32_i24_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x12,0xd2,0x03,0x0b,0x00,0x00] 259// VI: v_mul_i32_i24_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x06,0xd1,0x03,0x0b,0x00,0x00] 260 261v_mul_i32_i24 v1, v3, s5 clamp 262// NOSICI: error: integer clamping is not supported on this GPU 263// VI: v_mul_i32_i24_e64 v1, v3, s5 clamp ; encoding: [0x01,0x80,0x06,0xd1,0x03,0x0b,0x00,0x00] 264 265v_mul_u32_u24 v1, v3, s5 266// SICI: v_mul_u32_u24_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x16,0xd2,0x03,0x0b,0x00,0x00] 267// VI: v_mul_u32_u24_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x08,0xd1,0x03,0x0b,0x00,0x00] 268 269v_mul_u32_u24 v1, v3, s5 clamp 270// NOSICI: error: integer clamping is not supported on this GPU 271// VI: v_mul_u32_u24_e64 v1, v3, s5 clamp ; encoding: [0x01,0x80,0x08,0xd1,0x03,0x0b,0x00,0x00] 272 273v_mac_f32_e64 v0, v1, v2 274// SICI: v_mac_f32_e64 v0, v1, v2 ; encoding: [0x00,0x00,0x3e,0xd2,0x01,0x05,0x02,0x00] 275// VI: v_mac_f32_e64 v0, v1, v2 ; encoding: [0x00,0x00,0x16,0xd1,0x01,0x05,0x02,0x00] 276 277v_mac_f32_e64 v0, v1, v2 clamp 278// SICI: v_mac_f32_e64 v0, v1, v2 clamp ; encoding: [0x00,0x08,0x3e,0xd2,0x01,0x05,0x02,0x00] 279// VI: v_mac_f32_e64 v0, v1, v2 clamp ; encoding: [0x00,0x80,0x16,0xd1,0x01,0x05,0x02,0x00] 280 281v_mac_f32_e64 v0, v1, v2 mul:2 282// SICI: v_mac_f32_e64 v0, v1, v2 mul:2 ; encoding: [0x00,0x00,0x3e,0xd2,0x01,0x05,0x02,0x08] 283// VI: v_mac_f32_e64 v0, v1, v2 mul:2 ; encoding: [0x00,0x00,0x16,0xd1,0x01,0x05,0x02,0x08] 284 285v_mac_f32_e64 v0, -v1, |v2| 286// SICI: v_mac_f32_e64 v0, -v1, |v2| ; encoding: [0x00,0x02,0x3e,0xd2,0x01,0x05,0x02,0x20] 287// VI: v_mac_f32_e64 v0, -v1, |v2| ; encoding: [0x00,0x02,0x16,0xd1,0x01,0x05,0x02,0x20] 288 289v_mac_f16_e64 v0, 0.5, flat_scratch_lo 290// VI: v_mac_f16_e64 v0, 0.5, flat_scratch_lo ; encoding: [0x00,0x00,0x23,0xd1,0xf0,0xcc,0x00,0x00] 291// NOCI: error: instruction not supported on this GPU 292// NOSI: error: instruction not supported on this GPU 293 294v_mac_f16_e64 v0, -4.0, flat_scratch_lo 295// VI: v_mac_f16_e64 v0, -4.0, flat_scratch_lo ; encoding: [0x00,0x00,0x23,0xd1,0xf7,0xcc,0x00,0x00] 296// NOCI: error: instruction not supported on this GPU 297// NOSI: error: instruction not supported on this GPU 298 299v_mac_f16_e64 v0, flat_scratch_lo, -4.0 300// VI: v_mac_f16_e64 v0, flat_scratch_lo, -4.0 ; encoding: [0x00,0x00,0x23,0xd1,0x66,0xee,0x01,0x00] 301// NOCI: error: instruction not supported on this GPU 302// NOSI: error: instruction not supported on this GPU 303 304v_add_u32 v84, vcc, v13, s31 clamp 305// NOSICI: error: instruction not supported on this GPU 306// VI: v_add_u32_e64 v84, vcc, v13, s31 clamp ; encoding: [0x54,0xea,0x19,0xd1,0x0d,0x3f,0x00,0x00] 307 308v_sub_u32 v84, s[2:3], v13, s31 clamp 309// NOSICI: error: instruction not supported on this GPU 310// VI: v_sub_u32_e64 v84, s[2:3], v13, s31 clamp ; encoding: [0x54,0x82,0x1a,0xd1,0x0d,0x3f,0x00,0x00] 311 312v_subrev_u32 v84, vcc, v13, s31 clamp 313// NOSICI: error: instruction not supported on this GPU 314// VI: v_subrev_u32_e64 v84, vcc, v13, s31 clamp ; encoding: [0x54,0xea,0x1b,0xd1,0x0d,0x3f,0x00,0x00] 315 316v_addc_u32 v84, s[4:5], v13, v31, vcc clamp 317// NOSICI: error: integer clamping is not supported on this GPU 318// VI: v_addc_u32_e64 v84, s[4:5], v13, v31, vcc clamp ; encoding: [0x54,0x84,0x1c,0xd1,0x0d,0x3f,0xaa,0x01] 319 320v_subb_u32 v84, s[2:3], v13, v31, vcc clamp 321// NOSICI: error: integer clamping is not supported on this GPU 322// VI: v_subb_u32_e64 v84, s[2:3], v13, v31, vcc clamp ; encoding: [0x54,0x82,0x1d,0xd1,0x0d,0x3f,0xaa,0x01] 323 324v_subbrev_u32 v84, vcc, v13, v31, s[6:7] clamp 325// NOSICI: error: integer clamping is not supported on this GPU 326// VI: v_subbrev_u32_e64 v84, vcc, v13, v31, s[6:7] clamp ; encoding: [0x54,0xea,0x1e,0xd1,0x0d,0x3f,0x1a,0x00] 327 328///===---------------------------------------------------------------------===// 329// VOP3 Instructions 330///===---------------------------------------------------------------------===// 331 332// TODO: Modifier tests 333 334v_mad_legacy_f32 v2, v4, v6, v8 335// SICI: v_mad_legacy_f32 v2, v4, v6, v8 ; encoding: [0x02,0x00,0x80,0xd2,0x04,0x0d,0x22,0x04] 336// VI: v_mad_legacy_f32 v2, v4, v6, v8 ; encoding: [0x02,0x00,0xc0,0xd1,0x04,0x0d,0x22,0x04] 337 338v_add_f64 v[0:1], v[2:3], v[5:6] 339// SICI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x00] 340// VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00] 341 342v_add_f64_e64 v[0:1], v[2:3], v[5:6] 343// SICI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x00] 344// VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00] 345 346v_add_f64 v[0:1], -v[2:3], v[5:6] 347// SICI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x20] 348// VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20] 349 350v_add_f64_e64 v[0:1], -v[2:3], v[5:6] 351// SICI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x20] 352// VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20] 353 354v_add_f64 v[0:1], v[2:3], -v[5:6] 355// SICI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x40] 356// VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40] 357 358v_add_f64_e64 v[0:1], v[2:3], -v[5:6] 359// SICI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x40] 360// VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40] 361 362v_add_f64 v[0:1], |v[2:3]|, v[5:6] 363// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00] 364// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00] 365 366v_add_f64 v[0:1], abs(v[2:3]), v[5:6] 367// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00] 368// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00] 369 370v_add_f64_e64 v[0:1], |v[2:3]|, v[5:6] 371// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00] 372// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00] 373 374v_add_f64_e64 v[0:1], abs(v[2:3]), v[5:6] 375// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00] 376// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00] 377 378v_add_f64 v[0:1], v[2:3], |v[5:6]| 379// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00] 380// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00] 381 382v_add_f64 v[0:1], v[2:3], abs(v[5:6]) 383// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00] 384// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00] 385 386v_add_f64_e64 v[0:1], v[2:3], |v[5:6]| 387// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00] 388// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00] 389 390v_add_f64_e64 v[0:1], v[2:3], abs(v[5:6]) 391// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00] 392// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00] 393 394v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 395// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30] 396// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30] 397 398v_add_f64 v[0:1], -v[2:3], abs(v[5:6]) clamp mul:4 399// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30] 400// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30] 401 402v_add_f64_e64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 403// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30] 404// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30] 405 406v_add_f64_e64 v[0:1], -v[2:3], abs(v[5:6]) clamp mul:4 407// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30] 408// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30] 409 410v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] 411// SICI: v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] ; encoding: [0x18,0x6a,0xdc,0xd2,0x16,0x2d,0x52,0x04] 412// VI: v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] ; encoding: [0x18,0x6a,0xe1,0xd1,0x16,0x2d,0x52,0x04] 413 414v_div_scale_f64 v[24:25], s[10:11], -v[22:23], v[20:21], v[20:21] clamp 415// SICI: v_div_scale_f64 v[24:25], s[10:11], -v[22:23], v[20:21], v[20:21] clamp ; encoding: [0x18,0x0a,0xdc,0xd2,0x16,0x29,0x52,0x24] 416// VI: v_div_scale_f64 v[24:25], s[10:11], -v[22:23], v[20:21], v[20:21] clamp ; encoding: [0x18,0x8a,0xe1,0xd1,0x16,0x29,0x52,0x24] 417 418v_div_scale_f64 v[24:25], s[10:11], v[22:23], -v[20:21], v[20:21] clamp mul:2 419// SICI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], -v[20:21], v[20:21] clamp mul:2 ; encoding: [0x18,0x0a,0xdc,0xd2,0x16,0x29,0x52,0x4c] 420// VI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], -v[20:21], v[20:21] clamp mul:2 ; encoding: [0x18,0x8a,0xe1,0xd1,0x16,0x29,0x52,0x4c] 421 422v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], -v[20:21] 423// SICI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], -v[20:21] ; encoding: [0x18,0x0a,0xdc,0xd2,0x16,0x29,0x52,0x84] 424// VI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], -v[20:21] ; encoding: [0x18,0x0a,0xe1,0xd1,0x16,0x29,0x52,0x84] 425 426v_div_scale_f32 v24, vcc, v22, v22, v20 427// SICI: v_div_scale_f32 v24, vcc, v22, v22, v20 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0x52,0x04] 428// VI: v_div_scale_f32 v24, vcc, v22, v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0x52,0x04] 429 430v_div_scale_f32 v24, vcc, -v22, v22, v20 431// SICI: v_div_scale_f32 v24, vcc, -v22, v22, v20 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0x52,0x24] 432// VI: v_div_scale_f32 v24, vcc, -v22, v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0x52,0x24] 433 434v_div_scale_f32 v24, vcc, v22, -v22, v20 clamp 435// SICI: v_div_scale_f32 v24, vcc, v22, -v22, v20 clamp ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0x52,0x44] 436// VI: v_div_scale_f32 v24, vcc, v22, -v22, v20 clamp ; encoding: [0x18,0xea,0xe0,0xd1,0x16,0x2d,0x52,0x44] 437 438v_div_scale_f32 v24, vcc, v22, v22, -v20 clamp div:2 439// SICI: v_div_scale_f32 v24, vcc, v22, v22, -v20 clamp div:2 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0x52,0x9c] 440// VI: v_div_scale_f32 v24, vcc, v22, v22, -v20 clamp div:2 ; encoding: [0x18,0xea,0xe0,0xd1,0x16,0x2d,0x52,0x9c] 441 442v_div_scale_f32 v24, s[10:11], v22, v22, v20 443// SICI: v_div_scale_f32 v24, s[10:11], v22, v22, v20 ; encoding: [0x18,0x0a,0xda,0xd2,0x16,0x2d,0x52,0x04] 444// VI: v_div_scale_f32 v24, s[10:11], v22, v22, v20 ; encoding: [0x18,0x0a,0xe0,0xd1,0x16,0x2d,0x52,0x04] 445 446v_div_scale_f32 v24, vcc, v22, 1.0, v22 447// SICI: v_div_scale_f32 v24, vcc, v22, 1.0, v22 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0xe5,0x59,0x04] 448// VI: v_div_scale_f32 v24, vcc, v22, 1.0, v22 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0xe5,0x59,0x04] 449 450v_div_scale_f32 v24, vcc, v22, v22, -2.0 451// SICI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0xd6,0x03] 452// VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd6,0x03] 453 454v_div_scale_f32 v24, vcc, v22, v22, 0xc0000000 455// SICI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0xd6,0x03] 456// VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd6,0x03] 457 458v_mad_f32 v9, 0.5, v5, -v8 459// SICI: v_mad_f32 v9, 0.5, v5, -v8 ; encoding: [0x09,0x00,0x82,0xd2,0xf0,0x0a,0x22,0x84] 460// VI: v_mad_f32 v9, 0.5, v5, -v8 ; encoding: [0x09,0x00,0xc1,0xd1,0xf0,0x0a,0x22,0x84] 461 462v_mqsad_u32_u8 v[5:8], s[2:3], v4, v[0:3] 463// CI: v_mqsad_u32_u8 v[5:8], s[2:3], v4, v[0:3] ; encoding: [0x05,0x00,0xea,0xd2,0x02,0x08,0x02,0x04] 464// VI: v_mqsad_u32_u8 v[5:8], s[2:3], v4, v[0:3] ; encoding: [0x05,0x00,0xe7,0xd1,0x02,0x08,0x02,0x04] 465// NOSI: error: instruction not supported on this GPU 466 467v_mad_u64_u32 v[5:6], s[12:13], s1, 0, 0 468// CI: v_mad_u64_u32 v[5:6], s[12:13], s1, 0, 0 ; encoding: [0x05,0x0c,0xec,0xd2,0x01,0x00,0x01,0x02] 469// VI: v_mad_u64_u32 v[5:6], s[12:13], s1, 0, 0 ; encoding: [0x05,0x0c,0xe8,0xd1,0x01,0x00,0x01,0x02] 470// NOSI: error: instruction not supported on this GPU 471 472v_mad_i64_i32 v[5:6], s[12:13], s1, 0, v[254:255] 473// CI: v_mad_i64_i32 v[5:6], s[12:13], s1, 0, v[254:255] ; encoding: [0x05,0x0c,0xee,0xd2,0x01,0x00,0xf9,0x07] 474// VI: v_mad_i64_i32 v[5:6], s[12:13], s1, 0, v[254:255] ; encoding: [0x05,0x0c,0xe9,0xd1,0x01,0x00,0xf9,0x07] 475// NOSI: error: instruction not supported on this GPU 476 477v_cmp_class_f16_e64 s[10:11], v1, s2 478// NOSICI: error: instruction not supported on this GPU 479// VI: v_cmp_class_f16_e64 s[10:11], v1, s2 ; encoding: [0x0a,0x00,0x14,0xd0,0x01,0x05,0x00,0x00] 480 481v_cmp_class_f32_e64 s[10:11], -v1, s2 482// SICI: v_cmp_class_f32_e64 s[10:11], -v1, s2 ; encoding: [0x0a,0x00,0x10,0xd1,0x01,0x05,0x00,0x20] 483// VI: v_cmp_class_f32_e64 s[10:11], -v1, s2 ; encoding: [0x0a,0x00,0x10,0xd0,0x01,0x05,0x00,0x20] 484 485v_cmp_class_f64_e64 s[10:11], -v[254:255], s2 486// SICI: v_cmp_class_f64_e64 s[10:11], -v[254:255], s2 ; encoding: [0x0a,0x00,0x50,0xd1,0xfe,0x05,0x00,0x20] 487// VI: v_cmp_class_f64_e64 s[10:11], -v[254:255], s2 ; encoding: [0x0a,0x00,0x12,0xd0,0xfe,0x05,0x00,0x20] 488 489v_cmpx_class_f16_e64 s[10:11], v255, s2 490// NOSICI: error: instruction not supported on this GPU 491// VI: v_cmpx_class_f16_e64 s[10:11], v255, s2 ; encoding: [0x0a,0x00,0x15,0xd0,0xff,0x05,0x00,0x00] 492 493v_cmpx_class_f32_e64 s[10:11], 0, s101 494// SICI: v_cmpx_class_f32_e64 s[10:11], 0, s101 ; encoding: [0x0a,0x00,0x30,0xd1,0x80,0xca,0x00,0x00] 495// VI: v_cmpx_class_f32_e64 s[10:11], 0, s101 ; encoding: [0x0a,0x00,0x11,0xd0,0x80,0xca,0x00,0x00] 496 497v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2 498// SICI: v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2 ; encoding: [0x0a,0x00,0x70,0xd1,0x01,0x05,0x00,0x20] 499// VI: v_cmpx_class_f64_e64 s[10:11], -v[1:2], s2 ; encoding: [0x0a,0x00,0x13,0xd0,0x01,0x05,0x00,0x20] 500 501// 502// Modifier tests: 503// 504 505v_mul_f64 v[0:1], |0|, |0| 506// SICI: v_mul_f64 v[0:1], |0|, |0| ; encoding: [0x00,0x03,0xca,0xd2,0x80,0x00,0x01,0x00] 507// VI: v_mul_f64 v[0:1], |0|, |0| ; encoding: [0x00,0x03,0x81,0xd2,0x80,0x00,0x01,0x00] 508 509v_cubeid_f32 v0, |-1|, |-1.0|, |1.0| 510// SICI: v_cubeid_f32 v0, |-1|, |-1.0|, |1.0| ; encoding: [0x00,0x07,0x88,0xd2,0xc1,0xe6,0xc9,0x03] 511// VI: v_cubeid_f32 v0, |-1|, |-1.0|, |1.0| ; encoding: [0x00,0x07,0xc4,0xd1,0xc1,0xe6,0xc9,0x03] 512 513///===---------------------------------------------------------------------===// 514// VOP3 Legacy 515///===---------------------------------------------------------------------===// 516 517v_fma_f16_e64 v5, v1, v2, v3 518// VI: v_fma_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x04] 519// NOSICI: error: instruction not supported on this GPU 520 521v_fma_f16 v5, v1, v2, 0.5 522// VI: v_fma_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0xc2,0x03] 523// NOSICI: error: instruction not supported on this GPU 524 525v_fma_f16 v5, -v1, -v2, -v3 526// VI: v_fma_f16 v5, -v1, -v2, -v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0xe4] 527// NOSICI: error: instruction not supported on this GPU 528 529v_fma_f16 v5, |v1|, |v2|, |v3| 530// VI: v_fma_f16 v5, |v1|, |v2|, |v3| ; encoding: [0x05,0x07,0xee,0xd1,0x01,0x05,0x0e,0x04] 531// NOSICI: error: instruction not supported on this GPU 532 533v_fma_f16 v5, v1, v2, v3 clamp 534// VI: v_fma_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xee,0xd1,0x01,0x05,0x0e,0x04] 535// NOSICI: error: instruction not supported on this GPU 536 537v_div_fixup_f16_e64 v5, v1, v2, v3 538// VI: v_div_fixup_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x04] 539// NOSICI: error: instruction not supported on this GPU 540 541v_div_fixup_f16 v5, 0.5, v2, v3 542// VI: v_div_fixup_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0xf0,0x04,0x0e,0x04] 543// NOSICI: error: instruction not supported on this GPU 544 545v_div_fixup_f16 v5, v1, 0.5, v3 546// VI: v_div_fixup_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0xe1,0x0d,0x04] 547// NOSICI: error: instruction not supported on this GPU 548 549v_div_fixup_f16 v5, v1, v2, 0.5 550// VI: v_div_fixup_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xc2,0x03] 551// NOSICI: error: instruction not supported on this GPU 552 553v_div_fixup_f16 v5, v1, v2, -4.0 554// VI: v_div_fixup_f16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xde,0x03] 555// NOSICI: error: instruction not supported on this GPU 556 557v_div_fixup_f16 v5, -v1, v2, v3 558// VI: v_div_fixup_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24] 559// NOSICI: error: instruction not supported on this GPU 560 561v_div_fixup_f16 v5, v1, |v2|, v3 562// VI: v_div_fixup_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xef,0xd1,0x01,0x05,0x0e,0x04] 563// NOSICI: error: instruction not supported on this GPU 564 565v_div_fixup_f16 v5, v1, v2, v3 clamp 566// VI: v_div_fixup_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xef,0xd1,0x01,0x05,0x0e,0x04] 567// NOSICI: error: instruction not supported on this GPU 568 569v_mad_f16_e64 v5, v1, v2, v3 570// VI: v_mad_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x04] 571// NOSICI: error: instruction not supported on this GPU 572 573v_mad_f16 v5, 0.5, v2, v3 574// VI: v_mad_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0xf0,0x04,0x0e,0x04] 575// NOSICI: error: instruction not supported on this GPU 576 577v_mad_f16 v5, v1, 0.5, v3 578// VI: v_mad_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0xe1,0x0d,0x04] 579// NOSICI: error: instruction not supported on this GPU 580 581v_mad_f16 v5, v1, v2, 0.5 582// VI: v_mad_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0xc2,0x03] 583// NOSICI: error: instruction not supported on this GPU 584 585v_mad_f16 v5, v1, -v2, v3 586// VI: v_mad_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44] 587// NOSICI: error: instruction not supported on this GPU 588 589v_mad_f16 v5, v1, v2, |v3| 590// VI: v_mad_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0xea,0xd1,0x01,0x05,0x0e,0x04] 591// NOSICI: error: instruction not supported on this GPU 592 593v_mad_f16 v5, v1, v2, v3 clamp 594// VI: v_mad_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xea,0xd1,0x01,0x05,0x0e,0x04] 595// NOSICI: error: instruction not supported on this GPU 596 597v_mad_i16_e64 v5, -1, v2, v3 598// VI: v_mad_i16 v5, -1, v2, v3 ; encoding: [0x05,0x00,0xec,0xd1,0xc1,0x04,0x0e,0x04] 599// NOSICI: error: instruction not supported on this GPU 600 601v_mad_i16 v5, v1, -4.0, v3 602// NOVI: error: literal operands are not supported 603// NOSICI: error: instruction not supported on this GPU 604 605v_mad_i16 v5, v1, v2, 0 606// VI: v_mad_i16 v5, v1, v2, 0 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x05,0x02,0x02] 607// NOSICI: error: instruction not supported on this GPU 608 609v_mad_u16_e64 v5, -1, v2, v3 610// VI: v_mad_u16 v5, -1, v2, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0xc1,0x04,0x0e,0x04] 611// NOSICI: error: instruction not supported on this GPU 612 613v_mad_u16 v5, v1, 0, v3 614// VI: v_mad_u16 v5, v1, 0, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x01,0x0d,0x04] 615// NOSICI: error: instruction not supported on this GPU 616 617v_mad_u16 v5, v1, v2, -4.0 618// NOVI: error: literal operands are not supported 619// NOSICI: error: instruction not supported on this GPU 620 621///===---------------------------------------------------------------------===// 622// VOP3 with Integer Clamp 623///===---------------------------------------------------------------------===// 624 625v_mad_i32_i24 v5, v1, v2, v3 clamp 626// NOSICI: error: integer clamping is not supported on this GPU 627// VI: v_mad_i32_i24 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xc2,0xd1,0x01,0x05,0x0e,0x04] 628 629v_mad_u32_u24 v5, v1, v2, v3 clamp 630// NOSICI: error: integer clamping is not supported on this GPU 631// VI: v_mad_u32_u24 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xc3,0xd1,0x01,0x05,0x0e,0x04] 632 633v_sad_u8 v5, v1, v2, v3 clamp 634// NOSICI: error: integer clamping is not supported on this GPU 635// VI: v_sad_u8 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xd9,0xd1,0x01,0x05,0x0e,0x04] 636 637v_sad_hi_u8 v5, v1, v2, v3 clamp 638// NOSICI: error: integer clamping is not supported on this GPU 639// VI: v_sad_hi_u8 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xda,0xd1,0x01,0x05,0x0e,0x04] 640 641v_sad_u16 v5, v1, v2, v3 clamp 642// NOSICI: error: integer clamping is not supported on this GPU 643// VI: v_sad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xdb,0xd1,0x01,0x05,0x0e,0x04] 644 645v_sad_u32 v5, v1, v2, v3 clamp 646// NOSICI: error: integer clamping is not supported on this GPU 647// VI: v_sad_u32 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xdc,0xd1,0x01,0x05,0x0e,0x04] 648 649v_msad_u8 v5, v1, v2, v3 clamp 650// NOSICI: error: integer clamping is not supported on this GPU 651// VI: v_msad_u8 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xe4,0xd1,0x01,0x05,0x0e,0x04] 652 653v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp 654// NOSICI: error: integer clamping is not supported on this GPU 655// VI: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp ; encoding: [0x05,0x80,0xe6,0xd1,0x01,0x05,0x0e,0x04] 656 657v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp 658// VI: v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp ; encoding: [0x05,0x80,0xe5,0xd1,0x01,0x05,0x0e,0x04] 659// NOCI: error: integer clamping is not supported on this GPU 660// NOSI: error: instruction not supported on this GPU 661 662v_mqsad_u32_u8 v[252:255], v[1:2], v2, v[3:6] clamp 663// VI: v_mqsad_u32_u8 v[252:255], v[1:2], v2, v[3:6] clamp ; encoding: [0xfc,0x80,0xe7,0xd1,0x01,0x05,0x0e,0x04] 664// NOCI: error: integer clamping is not supported on this GPU 665// NOSI: error: instruction not supported on this GPU 666 667v_mad_u16 v5, v1, v2, v3 clamp 668// NOSICI: error: instruction not supported on this GPU 669// VI: v_mad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xeb,0xd1,0x01,0x05,0x0e,0x04] 670 671v_mad_i16 v5, v1, v2, v3 clamp 672// NOSICI: error: instruction not supported on this GPU 673// VI: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xec,0xd1,0x01,0x05,0x0e,0x04] 674 675// 676// v_interp* 677// 678 679v_interp_mov_f32_e64 v5, p10, attr0.x 680// NOSICI: error: e64 variant of this instruction is not supported 681// VI: v_interp_mov_f32_e64 v5, p10, attr0.x ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x00] 682 683v_interp_mov_f32_e64 v5, p10, attr32.x 684// NOSICI: error: e64 variant of this instruction is not supported 685// VI: v_interp_mov_f32_e64 v5, p10, attr32.x ; encoding: [0x05,0x00,0x72,0xd2,0x20,0x00,0x00,0x00] 686 687v_interp_mov_f32_e64 v5, p20, attr0.x 688// NOSICI: error: e64 variant of this instruction is not supported 689// VI: v_interp_mov_f32_e64 v5, p20, attr0.x ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x02,0x00,0x00] 690 691v_interp_mov_f32_e64 v5, p10, attr0.w 692// NOSICI: error: e64 variant of this instruction is not supported 693// VI: v_interp_mov_f32_e64 v5, p10, attr0.w ; encoding: [0x05,0x00,0x72,0xd2,0xc0,0x00,0x00,0x00] 694 695v_interp_mov_f32_e64 v5, p10, attr0.x clamp 696// NOSICI: error: e64 variant of this instruction is not supported 697// VI: v_interp_mov_f32_e64 v5, p10, attr0.x clamp ; encoding: [0x05,0x80,0x72,0xd2,0x00,0x00,0x00,0x00] 698 699v_interp_mov_f32 v5, p10, attr0.x clamp 700// NOSICI: error: invalid operand for instruction 701// VI: v_interp_mov_f32_e64 v5, p10, attr0.x clamp ; encoding: [0x05,0x80,0x72,0xd2,0x00,0x00,0x00,0x00] 702 703v_interp_mov_f32_e64 v5, p10, attr0.x mul:2 704// NOSICI: error: e64 variant of this instruction is not supported 705// VI: v_interp_mov_f32_e64 v5, p10, attr0.x mul:2 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x08] 706 707v_interp_mov_f32_e64 v5, p10, attr0.x mul:4 708// NOSICI: error: e64 variant of this instruction is not supported 709// VI: v_interp_mov_f32_e64 v5, p10, attr0.x mul:4 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x10] 710 711v_interp_mov_f32_e64 v5, p10, attr0.x div:2 712// NOSICI: error: e64 variant of this instruction is not supported 713// VI: v_interp_mov_f32_e64 v5, p10, attr0.x div:2 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x18] 714 715v_interp_mov_f32 v5, p10, attr0.x div:2 716// NOSICI: error: not a valid operand 717// VI: v_interp_mov_f32_e64 v5, p10, attr0.x div:2 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x18] 718 719 720v_interp_p1_f32_e64 v5, v2, attr0.x 721// NOSICI: error: e64 variant of this instruction is not supported 722// VI: v_interp_p1_f32_e64 v5, v2, attr0.x ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x00] 723 724v_interp_p1_f32_e64 v5, v2, attr0.y 725// NOSICI: error: e64 variant of this instruction is not supported 726// VI: v_interp_p1_f32_e64 v5, v2, attr0.y ; encoding: [0x05,0x00,0x70,0xd2,0x40,0x04,0x02,0x00] 727 728v_interp_p1_f32_e64 v5, -v2, attr0.x 729// NOSICI: error: e64 variant of this instruction is not supported 730// VI: v_interp_p1_f32_e64 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x40] 731 732v_interp_p1_f32_e64 v5, |v2|, attr0.x 733// NOSICI: error: e64 variant of this instruction is not supported 734// VI: v_interp_p1_f32_e64 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x70,0xd2,0x00,0x04,0x02,0x00] 735 736v_interp_p1_f32_e64 v5, v2, attr0.x clamp 737// NOSICI: error: e64 variant of this instruction is not supported 738// VI: v_interp_p1_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x70,0xd2,0x00,0x04,0x02,0x00] 739 740v_interp_p1_f32 v5, v2, attr0.x clamp 741// NOSICI: error: invalid operand for instruction 742// VI: v_interp_p1_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x70,0xd2,0x00,0x04,0x02,0x00] 743 744v_interp_p1_f32_e64 v5, v2, attr0.x mul:2 745// NOSICI: error: e64 variant of this instruction is not supported 746// VI: v_interp_p1_f32_e64 v5, v2, attr0.x mul:2 ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x08] 747 748 749v_interp_p2_f32_e64 v255, v2, attr0.x 750// NOSICI: error: e64 variant of this instruction is not supported 751// VI: v_interp_p2_f32_e64 v255, v2, attr0.x ; encoding: [0xff,0x00,0x71,0xd2,0x00,0x04,0x02,0x00] 752 753v_interp_p2_f32_e64 v5, v2, attr31.x 754// NOSICI: error: e64 variant of this instruction is not supported 755// VI: v_interp_p2_f32_e64 v5, v2, attr31.x ; encoding: [0x05,0x00,0x71,0xd2,0x1f,0x04,0x02,0x00] 756 757v_interp_p2_f32_e64 v5, -v2, attr0.x 758// NOSICI: error: e64 variant of this instruction is not supported 759// VI: v_interp_p2_f32_e64 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x71,0xd2,0x00,0x04,0x02,0x40] 760 761v_interp_p2_f32_e64 v5, |v2|, attr0.x 762// NOSICI: error: e64 variant of this instruction is not supported 763// VI: v_interp_p2_f32_e64 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x71,0xd2,0x00,0x04,0x02,0x00] 764 765v_interp_p2_f32_e64 v5, v2, attr0.x clamp 766// NOSICI: error: e64 variant of this instruction is not supported 767// VI: v_interp_p2_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x71,0xd2,0x00,0x04,0x02,0x00] 768 769v_interp_p2_f32_e64 v5, v2, attr0.x div:2 770// NOSICI: error: e64 variant of this instruction is not supported 771// VI: v_interp_p2_f32_e64 v5, v2, attr0.x div:2 ; encoding: [0x05,0x00,0x71,0xd2,0x00,0x04,0x02,0x18] 772 773 774v_interp_p1ll_f16 v5, v2, attr31.x 775// NOSICI: error: instruction not supported on this GPU 776// VI: v_interp_p1ll_f16 v5, v2, attr31.x ; encoding: [0x05,0x00,0x74,0xd2,0x1f,0x04,0x02,0x00] 777 778v_interp_p1ll_f16 v5, v2, attr0.w 779// NOSICI: error: instruction not supported on this GPU 780// VI: v_interp_p1ll_f16 v5, v2, attr0.w ; encoding: [0x05,0x00,0x74,0xd2,0xc0,0x04,0x02,0x00] 781 782v_interp_p1ll_f16 v5, -v2, attr0.x 783// NOSICI: error: instruction not supported on this GPU 784// VI: v_interp_p1ll_f16 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x04,0x02,0x40] 785 786v_interp_p1ll_f16 v5, |v2|, attr0.x 787// NOSICI: error: instruction not supported on this GPU 788// VI: v_interp_p1ll_f16 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x74,0xd2,0x00,0x04,0x02,0x00] 789 790v_interp_p1ll_f16 v5, v2, attr0.x high 791// NOSICI: error: instruction not supported on this GPU 792// VI: v_interp_p1ll_f16 v5, v2, attr0.x high ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x05,0x02,0x00] 793 794v_interp_p1ll_f16 v5, v2, attr0.x clamp 795// NOSICI: error: instruction not supported on this GPU 796// VI: v_interp_p1ll_f16 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x74,0xd2,0x00,0x04,0x02,0x00] 797 798v_interp_p1ll_f16 v5, v2, attr0.x mul:4 799// NOSICI: error: instruction not supported on this GPU 800// VI: v_interp_p1ll_f16 v5, v2, attr0.x mul:4 ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x04,0x02,0x10] 801 802 803v_interp_p1lv_f16 v5, v2, attr1.x, v3 804// NOSICI: error: instruction not supported on this GPU 805// VI: v_interp_p1lv_f16 v5, v2, attr1.x, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x01,0x04,0x0e,0x04] 806 807v_interp_p1lv_f16 v5, v2, attr0.z, v3 808// NOSICI: error: instruction not supported on this GPU 809// VI: v_interp_p1lv_f16 v5, v2, attr0.z, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x80,0x04,0x0e,0x04] 810 811v_interp_p1lv_f16 v5, -v2, attr0.x, v3 812// NOSICI: error: instruction not supported on this GPU 813// VI: v_interp_p1lv_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x44] 814 815v_interp_p1lv_f16 v5, v2, attr0.x, -v3 816// NOSICI: error: instruction not supported on this GPU 817// VI: v_interp_p1lv_f16 v5, v2, attr0.x, -v3 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x84] 818 819v_interp_p1lv_f16 v5, |v2|, attr0.x, v3 820// NOSICI: error: instruction not supported on this GPU 821// VI: v_interp_p1lv_f16 v5, |v2|, attr0.x, v3 ; encoding: [0x05,0x02,0x75,0xd2,0x00,0x04,0x0e,0x04] 822 823v_interp_p1lv_f16 v5, v2, attr0.x, |v3| 824// NOSICI: error: instruction not supported on this GPU 825// VI: v_interp_p1lv_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x75,0xd2,0x00,0x04,0x0e,0x04] 826 827v_interp_p1lv_f16 v5, v2, attr0.x, v3 high 828// NOSICI: error: instruction not supported on this GPU 829// VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x05,0x0e,0x04] 830 831v_interp_p1lv_f16 v5, v2, attr0.x, v3 clamp 832// NOSICI: error: instruction not supported on this GPU 833// VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x75,0xd2,0x00,0x04,0x0e,0x04] 834 835v_interp_p1lv_f16 v5, v2, attr0.x, v3 mul:2 836// NOSICI: error: instruction not supported on this GPU 837// VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 mul:2 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x0c] 838 839v_interp_p1lv_f16 v5, v2, attr0.x, v3 div:2 840// NOSICI: error: instruction not supported on this GPU 841// VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 div:2 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x1c] 842 843 844v_interp_p2_f16 v5, v2, attr1.x, v3 845// NOSICI: error: instruction not supported on this GPU 846// VI: v_interp_p2_f16 v5, v2, attr1.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x01,0x04,0x0e,0x04] 847 848v_interp_p2_f16 v5, v2, attr32.x, v3 849// NOSICI: error: instruction not supported on this GPU 850// VI: v_interp_p2_f16 v5, v2, attr32.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x20,0x04,0x0e,0x04] 851 852v_interp_p2_f16 v5, v2, attr0.w, v3 853// NOSICI: error: instruction not supported on this GPU 854// VI: v_interp_p2_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x76,0xd2,0xc0,0x04,0x0e,0x04] 855 856v_interp_p2_f16 v5, -v2, attr0.x, v3 857// NOSICI: error: instruction not supported on this GPU 858// VI: v_interp_p2_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x44] 859 860v_interp_p2_f16 v5, v2, attr0.x, -v3 861// NOSICI: error: instruction not supported on this GPU 862// VI: v_interp_p2_f16 v5, v2, attr0.x, -v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x84] 863 864v_interp_p2_f16 v5, |v2|, attr0.x, v3 865// NOSICI: error: instruction not supported on this GPU 866// VI: v_interp_p2_f16 v5, |v2|, attr0.x, v3 ; encoding: [0x05,0x02,0x76,0xd2,0x00,0x04,0x0e,0x04] 867 868v_interp_p2_f16 v5, v2, attr0.x, |v3| 869// NOSICI: error: instruction not supported on this GPU 870// VI: v_interp_p2_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x76,0xd2,0x00,0x04,0x0e,0x04] 871 872v_interp_p2_f16 v5, v2, attr0.x, v3 high 873// NOSICI: error: instruction not supported on this GPU 874// VI: v_interp_p2_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x05,0x0e,0x04] 875 876v_interp_p2_f16 v5, v2, attr0.x, v3 clamp 877// NOSICI: error: instruction not supported on this GPU 878// VI: v_interp_p2_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x76,0xd2,0x00,0x04,0x0e,0x04] 879