1// RUN: llvm-mc -triple=amdgcn -show-encoding -mcpu=gfx1100 -mattr=+wavefrontsize32 %s | FileCheck --check-prefix=GFX11 %s 2 3// Check opcode promotions and forced suffices. 4// 1. When a suffix is optional, check that it may be omitted. 5// 2. When a suffix is optional, check that it may be specified w/o any effect. 6// 3. When a suffix is required, check that specifying it enforces opcode promotion. 7// 4. When a suffix is required, check that omitting the suffix results in a different encoding. 8 9//===----------------------------------------------------------------------===// 10// VOP1. 11//===----------------------------------------------------------------------===// 12 13v_mov_b32 v0, v1 14// GFX11: v_mov_b32_e32 v0, v1 ; encoding: [0x01,0x03,0x00,0x7e] 15 16v_mov_b32_e32 v0, v1 17// GFX11: v_mov_b32_e32 v0, v1 ; encoding: [0x01,0x03,0x00,0x7e] 18 19//===----------------------------------------------------------------------===// 20// VOP2. 21//===----------------------------------------------------------------------===// 22 23v_add_f16 v5, v1, v2 24// GFX11: v_add_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x64] 25 26v_add_f16_e32 v5, v1, v2 27// GFX11: v_add_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x64] 28 29//===----------------------------------------------------------------------===// 30// VOPC. 31//===----------------------------------------------------------------------===// 32 33v_cmp_lt_f32 vcc_lo, v1, v2 34// GFX11: v_cmp_lt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] 35 36v_cmp_lt_f32_e32 vcc_lo, v1, v2 37// GFX11: v_cmp_lt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] 38 39//===----------------------------------------------------------------------===// 40// VOPCX. 41//===----------------------------------------------------------------------===// 42 43v_cmpx_class_f16 v1, v2 44// GFX11: v_cmpx_class_f16_e32 v1, v2 ; encoding: [0x01,0x05,0xfa,0x7d] 45 46v_cmpx_class_f16_e32 v1, v2 47// GFX11: v_cmpx_class_f16_e32 v1, v2 ; encoding: [0x01,0x05,0xfa,0x7d] 48 49//===----------------------------------------------------------------------===// 50// VOP1.DPP8. 51//===----------------------------------------------------------------------===// 52 53v_bfrev_b32 v5, v1 dpp8:[7,6,5,4,3,2,1,0] 54// GFX11: v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x70,0x0a,0x7e,0x01,0x77,0x39,0x05] 55 56v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] 57// GFX11: v_bfrev_b32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x70,0x0a,0x7e,0x01,0x77,0x39,0x05] 58 59//===----------------------------------------------------------------------===// 60// VOP1.DPP16. 61//===----------------------------------------------------------------------===// 62 63v_bfrev_b32 v5, v1 quad_perm:[3,2,1,0] 64// GFX11: v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x70,0x0a,0x7e,0x01,0x1b,0x00,0xff] 65 66v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0] 67// GFX11: v_bfrev_b32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x70,0x0a,0x7e,0x01,0x1b,0x00,0xff] 68 69//===----------------------------------------------------------------------===// 70// VOP2.DPP8. 71//===----------------------------------------------------------------------===// 72 73v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 74// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] 75 76v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 77// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] 78 79//===----------------------------------------------------------------------===// 80// VOP2.DPP16. 81//===----------------------------------------------------------------------===// 82 83v_add_f16 v5, v1, v2 quad_perm:[3,2,1,0] 84// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] 85 86v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] 87// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] 88 89//===----------------------------------------------------------------------===// 90// VOPC.DPP8. 91//===----------------------------------------------------------------------===// 92 93v_cmp_le_u16 v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 94// GFX11: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0xff,0x47,0xfa] 95 96v_cmp_le_u16_dpp v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 97// GFX11: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,7,7,3,4,4,6,7] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0xff,0x47,0xfa] 98 99//===----------------------------------------------------------------------===// 100// VOPC.DPP16. 101//===----------------------------------------------------------------------===// 102 103v_cmp_gt_u16 v1, v2 row_shl:0x7 row_mask:0x0 bank_mask:0x0 fi:1 104// GFX11: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:7 row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x07,0x05,0x00] 105 106v_cmp_gt_u16_dpp v1, v2 row_shl:0x7 row_mask:0x0 bank_mask:0x0 fi:1 107// GFX11: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:7 row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x07,0x05,0x00] 108 109//===----------------------------------------------------------------------===// 110// VOPCX.DPP8. 111//===----------------------------------------------------------------------===// 112 113v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] 114// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] 115 116v_cmpx_class_f16_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] 117// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] 118 119//===----------------------------------------------------------------------===// 120// VOPCX.DPP16. 121//===----------------------------------------------------------------------===// 122 123v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] 124// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] 125 126v_cmpx_class_f16_dpp v1, v2 quad_perm:[3,2,1,0] 127// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] 128 129//===----------------------------------------------------------------------===// 130// VOP1 -> VOP3. 131//===----------------------------------------------------------------------===// 132 133v_sin_f32 v5, 0.5 mul:2 134// GFX11: v_sin_f32_e64 v5, 0.5 mul:2 ; encoding: [0x05,0x00,0xb5,0xd5,0xf0,0x00,0x00,0x08] 135 136v_sin_f32_e64 v5, 0.5 mul:2 137// GFX11: v_sin_f32_e64 v5, 0.5 mul:2 ; encoding: [0x05,0x00,0xb5,0xd5,0xf0,0x00,0x00,0x08] 138 139v_sin_f32_e64 v5, v1 140// GFX11: v_sin_f32_e64 v5, v1 ; encoding: [0x05,0x00,0xb5,0xd5,0x01,0x01,0x00,0x00] 141 142v_sin_f32 v5, v1 143// GFX11: v_sin_f32_e32 v5, v1 ; encoding: [0x01,0x6b,0x0a,0x7e] 144 145//===----------------------------------------------------------------------===// 146// VOP2 -> VOP3. 147//===----------------------------------------------------------------------===// 148 149v_add_f32 v5, v1, -v2 150// GFX11: v_add_f32_e64 v5, v1, -v2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x40] 151 152v_add_f32_e64 v5, v1, -v2 153// GFX11: v_add_f32_e64 v5, v1, -v2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x40] 154 155v_add_f32_e64 v5, v1, v2 156// GFX11: v_add_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00] 157 158v_add_f32 v5, v1, v2 159// GFX11: v_add_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x06] 160 161//===----------------------------------------------------------------------===// 162// VOPC -> VOP3. 163//===----------------------------------------------------------------------===// 164 165v_cmp_f_f32 s10, -v1, v2 166// GFX11: v_cmp_f_f32_e64 s10, -v1, v2 ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x20] 167 168v_cmp_f_f32_e64 s10, -v1, v2 169// GFX11: v_cmp_f_f32_e64 s10, -v1, v2 ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x20] 170 171v_cmp_f_f32_e64 vcc_lo, v1, v2 172// GFX11: v_cmp_f_f32_e64 vcc_lo, v1, v2 ; encoding: [0x6a,0x00,0x10,0xd4,0x01,0x05,0x02,0x00] 173 174v_cmp_f_f32 vcc_lo, v1, v2 175// GFX11: v_cmp_f_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x20,0x7c] 176 177//===----------------------------------------------------------------------===// 178// VOPCX -> VOP3. 179//===----------------------------------------------------------------------===// 180 181v_cmpx_f_f32 -v1, v2 182// GFX11: v_cmpx_f_f32_e64 -v1, v2 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x20] 183 184v_cmpx_f_f32_e64 -v1, v2 185// GFX11: v_cmpx_f_f32_e64 -v1, v2 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x20] 186 187v_cmpx_f_f32_e64 v1, v2 188// GFX11: v_cmpx_f_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x00] 189 190v_cmpx_f_f32 v1, v2 191// GFX11: v_cmpx_f_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x20,0x7d] 192 193//===----------------------------------------------------------------------===// 194// VOP3. 195//===----------------------------------------------------------------------===// 196 197v_add3_u32 v5, v1, v2, s3 198// GFX11: v_add3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] 199 200v_add3_u32_e64 v5, v1, v2, s3 201// GFX11: v_add3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] 202 203//===----------------------------------------------------------------------===// 204// VOP1 -> VOP3.DPP8. 205//===----------------------------------------------------------------------===// 206 207v_sin_f32 v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] 208// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x18,0x01,0x00,0x00,0x00] 209 210v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] 211// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x18,0x01,0x00,0x00,0x00] 212 213v_sin_f32_e64_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] 214// GFX11: v_sin_f32_e64_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0xb5,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05] 215 216v_sin_f32 v5, v1 dpp8:[7,6,5,4,3,2,1,0] 217// GFX11: v_sin_f32_dpp v5, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x6a,0x0a,0x7e,0x01,0x77,0x39,0x05] 218 219//===----------------------------------------------------------------------===// 220// VOP2 -> VOP3.DPP8. 221//===----------------------------------------------------------------------===// 222 223v_add_f32 v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] 224// GFX11: v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x10,0x01,0x77,0x39,0x05] 225 226v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] 227// GFX11: v_add_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x10,0x01,0x77,0x39,0x05] 228 229v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 230// GFX11: v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] 231 232v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 233// GFX11: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] 234 235//===----------------------------------------------------------------------===// 236// VOPC -> VOP3.DPP8. 237//===----------------------------------------------------------------------===// 238 239v_cmp_class_f32 s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 240// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] 241 242v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 243// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] 244 245v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 246// GFX11: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] 247 248v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] 249// GFX11: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] 250 251//===----------------------------------------------------------------------===// 252// VOPCX -> VOP3.DPP8. 253//===----------------------------------------------------------------------===// 254 255v_cmpx_class_f32 -v1, v2 dpp8:[7,6,5,4,3,2,1,0] 256// GFX11: v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] 257 258v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0] 259// GFX11: v_cmpx_class_f32_e64_dpp -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] 260 261v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] 262// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] 263 264v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] 265// GFX11: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] 266 267//===----------------------------------------------------------------------===// 268// VOP1 -> VOP3.DPP16. 269//===----------------------------------------------------------------------===// 270 271v_sin_f32 v5, v1 div:2 row_xmask:15 272// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x18,0x01,0x6f,0x01,0xff] 273 274v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15 275// GFX11: v_sin_f32_e64_dpp v5, v1 div:2 row_xmask:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x18,0x01,0x6f,0x01,0xff] 276 277v_sin_f32_e64_dpp v5, v1 quad_perm:[3,2,1,0] 278// GFX11: v_sin_f32_e64_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xb5,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff] 279 280v_sin_f32 v5, v1 quad_perm:[3,2,1,0] 281// GFX11: v_sin_f32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x6a,0x0a,0x7e,0x01,0x1b,0x00,0xff] 282 283//===----------------------------------------------------------------------===// 284// VOP2 -> VOP3.DPP16. 285//===----------------------------------------------------------------------===// 286 287v_add_f32 v5, v1, v2 div:2 quad_perm:[3,2,1,0] 288// GFX11: v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x18,0x01,0x1b,0x00,0xff] 289 290v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0] 291// GFX11: v_add_f32_e64_dpp v5, v1, v2 div:2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x18,0x01,0x1b,0x00,0xff] 292 293v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] 294// GFX11: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] 295 296v_add_f32 v5, v1, v2 quad_perm:[3,2,1,0] 297// GFX11: v_add_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff] 298 299//===----------------------------------------------------------------------===// 300// VOPC -> VOP3.DPP16. 301//===----------------------------------------------------------------------===// 302 303v_cmp_class_f32 s5, v1, v2 quad_perm:[3,2,1,0] 304// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] 305 306v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] 307// GFX11: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] 308 309v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf 310// GFX11: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] 311 312v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf 313// GFX11: v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] 314 315//===----------------------------------------------------------------------===// 316// VOPCX -> VOP3.DPP16. 317//===----------------------------------------------------------------------===// 318 319v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] 320// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] 321 322v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] 323// GFX11: v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff] 324 325//===----------------------------------------------------------------------===// 326// VOP3P. 327//===----------------------------------------------------------------------===// 328 329v_dot2_f32_f16 v0, v1, v2, v3 330// GFX11: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0x13,0xcc,0x01,0x05,0x0e,0x1c] 331 332v_dot2_f32_f16_e64 v0, v1, v2, v3 333// GFX11: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0x13,0xcc,0x01,0x05,0x0e,0x1c] 334 335//===----------------------------------------------------------------------===// 336// VOP3P.DPP8. 337//===----------------------------------------------------------------------===// 338 339v_dot2_f32_f16 v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] 340// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x00,0x40,0x13,0xcc,0xe9,0x04,0x0e,0x1c,0x01,0x77,0x39,0x05] 341 342v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] 343// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x00,0x40,0x13,0xcc,0xe9,0x04,0x0e,0x1c,0x01,0x77,0x39,0x05] 344 345//===----------------------------------------------------------------------===// 346// VOP3P.DPP16. 347//===----------------------------------------------------------------------===// 348 349v_dot2_f32_f16 v0, v1, v2, v3 quad_perm:[1,2,3,0] 350// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0] row_mask:0xf bank_mask:0xf ; encoding: [0x00,0x40,0x13,0xcc,0xfa,0x04,0x0e,0x1c,0x01,0x39,0x00,0xff] 351 352v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0] 353// GFX11: v_dot2_f32_f16_e64_dpp v0, v1, v2, v3 quad_perm:[1,2,3,0] row_mask:0xf bank_mask:0xf ; encoding: [0x00,0x40,0x13,0xcc,0xfa,0x04,0x0e,0x1c,0x01,0x39,0x00,0xff] 354