1// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s 2// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s 3// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s 4// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s 5 6v_lshl_add_u32 v1, v2, v3, v4 7// GFX9: v_lshl_add_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfd,0xd1,0x02,0x07,0x12,0x04] 8// NOVI: :1: error: instruction not supported on this GPU 9 10v_add_lshl_u32 v1, v2, v3, v4 11// GFX9: v_add_lshl_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfe,0xd1,0x02,0x07,0x12,0x04] 12// NOVI: :1: error: instruction not supported on this GPU 13 14v_add3_u32 v1, v2, v3, v4 15// GFX9: v_add3_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xff,0xd1,0x02,0x07,0x12,0x04] 16// NOVI: :1: error: instruction not supported on this GPU 17 18v_lshl_or_b32 v1, v2, v3, v4 19// GFX9: v_lshl_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x00,0xd2,0x02,0x07,0x12,0x04] 20// NOVI: :1: error: instruction not supported on this GPU 21 22v_and_or_b32 v1, v2, v3, v4 23// GFX9: v_and_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x01,0xd2,0x02,0x07,0x12,0x04] 24// NOVI: :1: error: instruction not supported on this GPU 25 26v_or3_b32 v1, v2, v3, v4 27// GFX9: v_or3_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x02,0xd2,0x02,0x07,0x12,0x04] 28// NOVI: :1: error: instruction not supported on this GPU 29 30v_pack_b32_f16 v1, v2, v3 31// GFX9: v_pack_b32_f16 v1, v2, v3 ; encoding: [0x01,0x00,0xa0,0xd2,0x02,0x07,0x02,0x00] 32// NOVI: :1: error: instruction not supported on this GPU 33 34v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0] 35// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0xa0,0xd2,0x01,0x05,0x02,0x00] 36 37v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0] 38// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0] ; encoding: [0x05,0x10,0xa0,0xd2,0x01,0x05,0x02,0x00] 39 40v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1] 41// GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1] ; encoding: [0x05,0x40,0xa0,0xd2,0x01,0x05,0x02,0x00] 42 43v_xad_u32 v1, v2, v3, v4 44// GFX9: v_xad_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf3,0xd1,0x02,0x07,0x12,0x04] 45// NOVI: :1: error: instruction not supported on this GPU 46 47v_min3_f16 v1, v2, v3, v4 48// GFX9: v_min3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf4,0xd1,0x02,0x07,0x12,0x04] 49// NOVI: :1: error: instruction not supported on this GPU 50 51v_min3_i16 v1, v2, v3, v4 52// GFX9: v_min3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf5,0xd1,0x02,0x07,0x12,0x04] 53// NOVI: :1: error: instruction not supported on this GPU 54 55v_min3_u16 v1, v2, v3, v4 56// GFX9: v_min3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf6,0xd1,0x02,0x07,0x12,0x04] 57// NOVI: :1: error: instruction not supported on this GPU 58 59v_max3_f16 v1, v2, v3, v4 60// GFX9: v_max3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf7,0xd1,0x02,0x07,0x12,0x04] 61// NOVI: :1: error: instruction not supported on this GPU 62 63v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,0] 64// GFX9: v_max3_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf7,0xd1,0x01,0x05,0x0e,0x04] 65 66v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] 67// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf7,0xd1,0x01,0x05,0x0e,0x04] 68 69v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] 70// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf7,0xd1,0x01,0x05,0x0e,0x04] 71 72v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] 73// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf7,0xd1,0x01,0x05,0x0e,0x04] 74 75v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] 76// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf7,0xd1,0x01,0x05,0x0e,0x04] 77 78v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] 79// GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf7,0xd1,0x01,0x05,0x0e,0x04] 80 81v_max3_i16 v1, v2, v3, v4 82// GFX9: v_max3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf8,0xd1,0x02,0x07,0x12,0x04] 83// NOVI: :1: error: instruction not supported on this GPU 84 85v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,0] 86// GFX9: v_max3_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf8,0xd1,0x01,0x05,0x0e,0x04] 87 88v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0] 89// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf8,0xd1,0x01,0x05,0x0e,0x04] 90 91v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0] 92// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf8,0xd1,0x01,0x05,0x0e,0x04] 93 94v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0] 95// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf8,0xd1,0x01,0x05,0x0e,0x04] 96 97v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] 98// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf8,0xd1,0x01,0x05,0x0e,0x04] 99 100v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] 101// GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf8,0xd1,0x01,0x05,0x0e,0x04] 102 103v_max3_u16 v1, v2, v3, v4 104// GFX9: v_max3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf9,0xd1,0x02,0x07,0x12,0x04] 105// NOVI: :1: error: instruction not supported on this GPU 106 107v_med3_f16 v1, v2, v3, v4 108// GFX9: v_med3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfa,0xd1,0x02,0x07,0x12,0x04] 109// NOVI: :1: error: instruction not supported on this GPU 110 111v_med3_i16 v1, v2, v3, v4 112// GFX9: v_med3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfb,0xd1,0x02,0x07,0x12,0x04] 113// NOVI: :1: error: instruction not supported on this GPU 114 115v_med3_u16 v1, v2, v3, v4 116// GFX9: v_med3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfc,0xd1,0x02,0x07,0x12,0x04] 117// NOVI: :1: error: instruction not supported on this GPU 118 119v_mad_u32_u16 v5, v1, v2, v3 120// GFX9: v_mad_u32_u16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf1,0xd1,0x01,0x05,0x0e,0x04] 121 122v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] 123// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf1,0xd1,0x01,0x05,0x0e,0x04] 124 125v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0] 126// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf1,0xd1,0x01,0x05,0x0e,0x04] 127 128v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0] 129// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf1,0xd1,0x01,0x05,0x0e,0x04] 130 131v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] 132// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf1,0xd1,0x01,0x05,0x0e,0x04] 133 134v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] 135// GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf1,0xd1,0x01,0x05,0x0e,0x04] 136 137v_mad_i32_i16 v5, v1, v2, v3 138// GFX9: v_mad_i32_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf2,0xd1,0x01,0x05,0x0e,0x04] 139 140v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] 141// GFX9: v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf2,0xd1,0x01,0x05,0x0e,0x04] 142 143v_cvt_pknorm_i16_f16 v5, v1, v2 144// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00] 145 146v_cvt_pknorm_i16_f16 v5, -v1, v2 147// GFX9: v_cvt_pknorm_i16_f16 v5, -v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x20] 148 149v_cvt_pknorm_i16_f16 v5, v1, -v2 150// GFX9: v_cvt_pknorm_i16_f16 v5, v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x40] 151 152v_cvt_pknorm_i16_f16 v5, -v1, -v2 153// GFX9: v_cvt_pknorm_i16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x60] 154 155v_cvt_pknorm_i16_f16 v5, |v1|, v2 156// GFX9: v_cvt_pknorm_i16_f16 v5, |v1|, v2 ; encoding: [0x05,0x01,0x99,0xd2,0x01,0x05,0x02,0x00] 157 158v_cvt_pknorm_i16_f16 v5, v1, |v2| 159// GFX9: v_cvt_pknorm_i16_f16 v5, v1, |v2| ; encoding: [0x05,0x02,0x99,0xd2,0x01,0x05,0x02,0x00] 160 161v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[0,0,0] 162// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00] 163 164v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0] 165// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x99,0xd2,0x01,0x05,0x02,0x00] 166 167v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1] 168// GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x99,0xd2,0x01,0x05,0x02,0x00] 169 170v_cvt_pknorm_u16_f16 v5, -v1, -v2 171// GFX9: v_cvt_pknorm_u16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x9a,0xd2,0x01,0x05,0x02,0x60] 172 173v_cvt_pknorm_u16_f16 v5, |v1|, |v2| 174// GFX9: v_cvt_pknorm_u16_f16 v5, |v1|, |v2| ; encoding: [0x05,0x03,0x9a,0xd2,0x01,0x05,0x02,0x00] 175 176v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1] 177// GFX9: v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9a,0xd2,0x01,0x05,0x02,0x00] 178 179v_add_i16 v5, v1, v2 180// GFX9: v_add_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9e,0xd2,0x01,0x05,0x02,0x00] 181 182v_add_i16 v5, v1, v2 op_sel:[1,1,1] 183// GFX9: v_add_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9e,0xd2,0x01,0x05,0x02,0x00] 184 185v_sub_i16 v5, v1, v2 186// GFX9: v_sub_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9f,0xd2,0x01,0x05,0x02,0x00] 187 188v_sub_i16 v5, v1, v2 op_sel:[1,1,1] 189// GFX9: v_sub_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9f,0xd2,0x01,0x05,0x02,0x00] 190 191v_sub_i16 v5, v1, v2 clamp 192// GFX9: v_sub_i16 v5, v1, v2 clamp ; encoding: [0x05,0x80,0x9f,0xd2,0x01,0x05,0x02,0x00] 193 194v_fma_f16_e64 v5, v1, v2, v3 195// GFX9: v_fma_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x04] 196 197v_fma_f16 v5, v1, -v2, v3 198// GFX9: v_fma_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x44] 199 200v_fma_f16 v5, v1, v2, |v3| 201// GFX9: v_fma_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x06,0xd2,0x01,0x05,0x0e,0x04] 202 203v_fma_f16 v5, v1, v2, v3 clamp 204// GFX9: v_fma_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x06,0xd2,0x01,0x05,0x0e,0x04] 205 206v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] 207// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x06,0xd2,0x01,0x05,0x0e,0x04] 208 209v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] 210// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x06,0xd2,0x01,0x05,0x0e,0x04] 211 212v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] 213// GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x06,0xd2,0x01,0x05,0x0e,0x04] 214 215v_fma_legacy_f16_e64 v5, v1, v2, v3 216// GFX9: v_fma_legacy_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x04] 217 218v_fma_legacy_f16 v5, -v1, v2, v3 219// GFX9: v_fma_legacy_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x24] 220 221v_fma_legacy_f16 v5, v1, |v2|, v3 222// GFX9: v_fma_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xee,0xd1,0x01,0x05,0x0e,0x04] 223 224v_fma_legacy_f16 v5, v1, v2, v3 clamp 225// GFX9: v_fma_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xee,0xd1,0x01,0x05,0x0e,0x04] 226 227v_div_fixup_f16_e64 v5, 0.5, v2, v3 228// GFX9: v_div_fixup_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0xf0,0x04,0x0e,0x04] 229 230v_div_fixup_f16 v5, v1, 0.5, v3 231// GFX9: v_div_fixup_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0xe1,0x0d,0x04] 232 233v_div_fixup_f16 v5, v1, v2, 0.5 234// GFX9: v_div_fixup_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0xc2,0x03] 235 236v_div_fixup_f16 v5, -v1, v2, v3 237// GFX9: v_div_fixup_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0x0e,0x24] 238 239v_div_fixup_f16 v5, |v1|, v2, v3 240// GFX9: v_div_fixup_f16 v5, |v1|, v2, v3 ; encoding: [0x05,0x01,0x07,0xd2,0x01,0x05,0x0e,0x04] 241 242v_div_fixup_f16 v5, v1, v2, v3 clamp 243// GFX9: v_div_fixup_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x07,0xd2,0x01,0x05,0x0e,0x04] 244 245v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] 246// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x07,0xd2,0x01,0x05,0x0e,0x04] 247 248v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] 249// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x07,0xd2,0x01,0x05,0x0e,0x04] 250 251v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] 252// GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x07,0xd2,0x01,0x05,0x0e,0x04] 253 254v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3 255// GFX9: v_div_fixup_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0xf0,0x04,0x0e,0x04] 256 257v_div_fixup_legacy_f16 v5, v1, 0.5, v3 258// GFX9: v_div_fixup_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0xe1,0x0d,0x04] 259 260v_div_fixup_legacy_f16 v5, v1, v2, 0.5 261// GFX9: v_div_fixup_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xc2,0x03] 262 263v_div_fixup_legacy_f16 v5, -v1, v2, v3 264// GFX9: v_div_fixup_legacy_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24] 265 266v_div_fixup_legacy_f16 v5, v1, |v2|, v3 267// GFX9: v_div_fixup_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xef,0xd1,0x01,0x05,0x0e,0x04] 268 269v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp 270// GFX9: v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xef,0xd1,0x01,0x05,0x0e,0x04] 271 272v_mad_f16_e64 v5, 0.5, v2, v3 273// GFX9: v_mad_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0xf0,0x04,0x0e,0x04] 274 275v_mad_f16 v5, v1, 0.5, v3 276// GFX9: v_mad_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0xe1,0x0d,0x04] 277 278v_mad_f16 v5, v1, v2, 0.5 279// GFX9: v_mad_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0xc2,0x03] 280 281v_mad_f16 v5, v1, v2, -v3 282// GFX9: v_mad_f16 v5, v1, v2, -v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x84] 283 284v_mad_f16 v5, v1, v2, |v3| 285// GFX9: v_mad_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x03,0xd2,0x01,0x05,0x0e,0x04] 286 287v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,0] 288// GFX9: v_mad_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x04] 289 290v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] 291// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x03,0xd2,0x01,0x05,0x0e,0x04] 292 293v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] 294// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x03,0xd2,0x01,0x05,0x0e,0x04] 295 296v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] 297// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x03,0xd2,0x01,0x05,0x0e,0x04] 298 299v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] 300// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x03,0xd2,0x01,0x05,0x0e,0x04] 301 302v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] 303// GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x03,0xd2,0x01,0x05,0x0e,0x04] 304 305v_mad_f16 v5, v1, v2, v3 clamp 306// GFX9: v_mad_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x03,0xd2,0x01,0x05,0x0e,0x04] 307 308v_mad_i16_e64 v5, 0, v2, v3 309// GFX9: v_mad_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x80,0x04,0x0e,0x04] 310 311v_mad_i16 v5, v1, -1, v3 312// GFX9: v_mad_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x01,0x83,0x0d,0x04] 313 314v_mad_i16 v5, v1, v2, -4.0 315// GFX9: v_mad_i16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0x05,0xd2,0x01,0x05,0xde,0x03] 316 317v_mad_i16 v5, v1, v2, v3 clamp 318// GFX9: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x05,0xd2,0x01,0x05,0x0e,0x04] 319 320v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] 321// GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x05,0xd2,0x01,0x05,0x0e,0x04] 322 323v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] 324// GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x05,0xd2,0x01,0x05,0x0e,0x04] 325 326v_mad_legacy_f16_e64 v5, 0.5, v2, v3 327// GFX9: v_mad_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0xf0,0x04,0x0e,0x04] 328 329v_mad_legacy_f16 v5, v1, 0.5, v3 330// GFX9: v_mad_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0xe1,0x0d,0x04] 331 332v_mad_legacy_f16 v5, v1, v2, 0.5 333// GFX9: v_mad_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0xc2,0x03] 334 335v_mad_legacy_f16 v5, v1, -v2, v3 336// GFX9: v_mad_legacy_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44] 337 338v_mad_legacy_f16 v5, v1, |v2|, v3 339// GFX9: v_mad_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xea,0xd1,0x01,0x05,0x0e,0x04] 340 341v_mad_legacy_f16 v5, v1, v2, v3 clamp 342// GFX9: v_mad_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xea,0xd1,0x01,0x05,0x0e,0x04] 343 344v_mad_legacy_i16_e64 v5, 0, v2, v3 345// GFX9: v_mad_legacy_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x80,0x04,0x0e,0x04] 346 347v_mad_legacy_i16 v5, v1, -1, v3 348// GFX9: v_mad_legacy_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x83,0x0d,0x04] 349 350v_mad_legacy_i16 v5, v1, v2, -4.0 351// GFX9: v_mad_legacy_i16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x05,0xde,0x03] 352 353v_mad_legacy_i16 v5, v1, v2, -4.0 clamp 354// GFX9: v_mad_legacy_i16 v5, v1, v2, -4.0 clamp ; encoding: [0x05,0x80,0xec,0xd1,0x01,0x05,0xde,0x03] 355 356v_mad_legacy_u16_e64 v5, 0, v2, v3 357// GFX9: v_mad_legacy_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x80,0x04,0x0e,0x04] 358 359v_mad_legacy_u16 v5, v1, -1, v3 360// GFX9: v_mad_legacy_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x83,0x0d,0x04] 361 362v_mad_legacy_u16 v5, v1, v2, -4.0 363// GFX9: v_mad_legacy_u16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x05,0xde,0x03] 364 365v_mad_legacy_u16 v5, v1, v2, -4.0 clamp 366// GFX9: v_mad_legacy_u16 v5, v1, v2, -4.0 clamp ; encoding: [0x05,0x80,0xeb,0xd1,0x01,0x05,0xde,0x03] 367 368v_mad_u16_e64 v5, 0, v2, v3 369// GFX9: v_mad_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x80,0x04,0x0e,0x04] 370 371v_mad_u16 v5, v1, -1, v3 372// GFX9: v_mad_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x01,0x83,0x0d,0x04] 373 374v_mad_u16 v5, v1, v2, -4.0 375// GFX9: v_mad_u16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0x04,0xd2,0x01,0x05,0xde,0x03] 376 377v_mad_u16 v5, v1, v2, v3 clamp 378// GFX9: v_mad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x04,0xd2,0x01,0x05,0x0e,0x04] 379 380v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] 381// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x04,0xd2,0x01,0x05,0x0e,0x04] 382 383v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] 384// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x04,0xd2,0x01,0x05,0x0e,0x04] 385 386v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] 387// GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x04,0xd2,0x01,0x05,0x0e,0x04] 388 389v_interp_p2_f16 v5, v2, attr0.x, v3 390// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x04] 391 392v_interp_p2_f16 v5, -v2, attr0.x, v3 393// GFX9: v_interp_p2_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x44] 394 395v_interp_p2_f16 v5, v2, attr0.x, |v3| 396// GFX9: v_interp_p2_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x77,0xd2,0x00,0x04,0x0e,0x04] 397 398v_interp_p2_f16 v5, v2, attr0.w, v3 399// GFX9: v_interp_p2_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x77,0xd2,0xc0,0x04,0x0e,0x04] 400 401v_interp_p2_f16 v5, v2, attr0.x, v3 high 402// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x05,0x0e,0x04] 403 404v_interp_p2_f16 v5, v2, attr0.x, v3 clamp 405// GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x77,0xd2,0x00,0x04,0x0e,0x04] 406 407v_interp_p2_legacy_f16 v5, v2, attr31.x, v3 408// GFX9: v_interp_p2_legacy_f16 v5, v2, attr31.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x1f,0x04,0x0e,0x04] 409 410v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3 411// GFX9: v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x44] 412 413v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3| 414// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x76,0xd2,0x00,0x04,0x0e,0x04] 415 416v_interp_p2_legacy_f16 v5, v2, attr0.w, v3 417// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x76,0xd2,0xc0,0x04,0x0e,0x04] 418 419v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high 420// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x05,0x0e,0x04] 421 422v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp 423// GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x76,0xd2,0x00,0x04,0x0e,0x04] 424 425v_cvt_norm_i16_f16_e64 v5, -v1 426// GFX9: v_cvt_norm_i16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8d,0xd1,0x01,0x01,0x00,0x20] 427// NOVI: error: instruction not supported on this GPU 428 429v_cvt_norm_i16_f16_e64 v5, |v1| 430// GFX9: v_cvt_norm_i16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8d,0xd1,0x01,0x01,0x00,0x00] 431// NOVI: error: instruction not supported on this GPU 432 433v_cvt_norm_u16_f16_e64 v5, -v1 434// GFX9: v_cvt_norm_u16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8e,0xd1,0x01,0x01,0x00,0x20] 435// NOVI: error: instruction not supported on this GPU 436 437v_cvt_norm_u16_f16_e64 v5, |v1| 438// GFX9: v_cvt_norm_u16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8e,0xd1,0x01,0x01,0x00,0x00] 439// NOVI: error: instruction not supported on this GPU 440 441v_sat_pk_u8_i16_e64 v5, -1 442// GFX9: v_sat_pk_u8_i16_e64 v5, -1 ; encoding: [0x05,0x00,0x8f,0xd1,0xc1,0x00,0x00,0x00] 443// NOVI: error: instruction not supported on this GPU 444 445v_sat_pk_u8_i16_e64 v5, v255 446// GFX9: v_sat_pk_u8_i16_e64 v5, v255 ; encoding: [0x05,0x00,0x8f,0xd1,0xff,0x01,0x00,0x00] 447// NOVI: error: instruction not supported on this GPU 448 449v_screen_partition_4se_b32_e64 v5, v1 450// GXF9: [0x05,0x00,0x77,0xd1,0x01,0x01,0x00,0x00] 451// NOVI: error: instruction not supported on this GPU 452 453v_screen_partition_4se_b32_e64 v5, -1 454// GXF9: [0x05,0x00,0x77,0xd1,0xc1,0x00,0x00,0x00] 455// NOVI: error: instruction not supported on this GPU 456