1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx906 -show-encoding %s | FileCheck %s 2// RUN: llvm-mc -triple=amdgcn -mcpu=gfx908 -show-encoding %s | FileCheck %s 3 4// 5// VOP2 Instructions. 6// 7 8// CHECK: encoding: [0x01,0x05,0x0a,0x76] 9v_fmac_f32 v5, v1, v2 10// CHECK: encoding: [0x01,0x05,0xfe,0x77] 11v_fmac_f32 v255, v1, v2 12// CHECK: encoding: [0xff,0x05,0x0a,0x76] 13v_fmac_f32 v5, v255, v2 14// CHECK: encoding: [0x01,0x04,0x0a,0x76] 15v_fmac_f32 v5, s1, v2 16// CHECK: encoding: [0x65,0x04,0x0a,0x76] 17v_fmac_f32 v5, s101, v2 18// CHECK: encoding: [0x66,0x04,0x0a,0x76] 19v_fmac_f32 v5, flat_scratch_lo, v2 20// CHECK: encoding: [0x67,0x04,0x0a,0x76] 21v_fmac_f32 v5, flat_scratch_hi, v2 22// CHECK: encoding: [0x6a,0x04,0x0a,0x76] 23v_fmac_f32 v5, vcc_lo, v2 24// CHECK: encoding: [0x6b,0x04,0x0a,0x76] 25v_fmac_f32 v5, vcc_hi, v2 26// CHECK: encoding: [0x7c,0x04,0x0a,0x76] 27v_fmac_f32 v5, m0, v2 28// CHECK: encoding: [0x7e,0x04,0x0a,0x76] 29v_fmac_f32 v5, exec_lo, v2 30// CHECK: encoding: [0x7f,0x04,0x0a,0x76] 31v_fmac_f32 v5, exec_hi, v2 32// CHECK: encoding: [0x80,0x04,0x0a,0x76] 33v_fmac_f32 v5, 0, v2 34// CHECK: encoding: [0xc1,0x04,0x0a,0x76] 35v_fmac_f32 v5, -1, v2 36// CHECK: encoding: [0xf0,0x04,0x0a,0x76] 37v_fmac_f32 v5, 0.5, v2 38// CHECK: encoding: [0xf7,0x04,0x0a,0x76] 39v_fmac_f32 v5, -4.0, v2 40// CHECK: encoding: [0xff,0x04,0x0a,0x76,0x56,0x34,0x12,0xaf] 41v_fmac_f32 v5, 0xaf123456, v2 42// CHECK: encoding: [0xff,0x04,0x0a,0x76,0x73,0x72,0x71,0x3f] 43v_fmac_f32 v5, 0x3f717273, v2 44// CHECK: encoding: [0x01,0xff,0x0b,0x76] 45v_fmac_f32 v5, v1, v255 46 47// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00] 48v_fmac_f32_e64 v5, v1, v2 49// CHECK: encoding: [0xff,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00] 50v_fmac_f32_e64 v255, v1, v2 51// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0xff,0x05,0x02,0x00] 52v_fmac_f32_e64 v5, v255, v2 53// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x04,0x02,0x00] 54v_fmac_f32_e64 v5, s1, v2 55// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x65,0x04,0x02,0x00] 56v_fmac_f32_e64 v5, s101, v2 57// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x66,0x04,0x02,0x00] 58v_fmac_f32_e64 v5, flat_scratch_lo, v2 59// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x67,0x04,0x02,0x00] 60v_fmac_f32_e64 v5, flat_scratch_hi, v2 61// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x6a,0x04,0x02,0x00] 62v_fmac_f32_e64 v5, vcc_lo, v2 63// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x6b,0x04,0x02,0x00] 64v_fmac_f32_e64 v5, vcc_hi, v2 65// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x7c,0x04,0x02,0x00] 66v_fmac_f32_e64 v5, m0, v2 67// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x7e,0x04,0x02,0x00] 68v_fmac_f32_e64 v5, exec_lo, v2 69// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x7f,0x04,0x02,0x00] 70v_fmac_f32_e64 v5, exec_hi, v2 71// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x80,0x04,0x02,0x00] 72v_fmac_f32_e64 v5, 0, v2 73// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0xc1,0x04,0x02,0x00] 74v_fmac_f32_e64 v5, -1, v2 75// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0xf0,0x04,0x02,0x00] 76v_fmac_f32_e64 v5, 0.5, v2 77// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0xf7,0x04,0x02,0x00] 78v_fmac_f32_e64 v5, -4.0, v2 79// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xff,0x03,0x00] 80v_fmac_f32_e64 v5, v1, v255 81// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x00,0x00] 82v_fmac_f32_e64 v5, v1, s2 83// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcb,0x00,0x00] 84v_fmac_f32_e64 v5, v1, s101 85// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcd,0x00,0x00] 86v_fmac_f32_e64 v5, v1, flat_scratch_lo 87// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcf,0x00,0x00] 88v_fmac_f32_e64 v5, v1, flat_scratch_hi 89// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xd5,0x00,0x00] 90v_fmac_f32_e64 v5, v1, vcc_lo 91// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xd7,0x00,0x00] 92v_fmac_f32_e64 v5, v1, vcc_hi 93// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xf9,0x00,0x00] 94v_fmac_f32_e64 v5, v1, m0 95// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xfd,0x00,0x00] 96v_fmac_f32_e64 v5, v1, exec_lo 97// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xff,0x00,0x00] 98v_fmac_f32_e64 v5, v1, exec_hi 99// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x01,0x01,0x00] 100v_fmac_f32_e64 v5, v1, 0 101// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x83,0x01,0x00] 102v_fmac_f32_e64 v5, v1, -1 103// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xe1,0x01,0x00] 104v_fmac_f32_e64 v5, v1, 0.5 105// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0xef,0x01,0x00] 106v_fmac_f32_e64 v5, v1, -4.0 107// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x20] 108v_fmac_f32_e64 v5, -v1, v2 109// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x40] 110v_fmac_f32_e64 v5, v1, -v2 111// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x60] 112v_fmac_f32_e64 v5, -v1, -v2 113// CHECK: encoding: [0x05,0x01,0x3b,0xd1,0x01,0x05,0x02,0x00] 114v_fmac_f32_e64 v5, |v1|, v2 115// CHECK: encoding: [0x05,0x02,0x3b,0xd1,0x01,0x05,0x02,0x00] 116v_fmac_f32_e64 v5, v1, |v2| 117// CHECK: encoding: [0x05,0x03,0x3b,0xd1,0x01,0x05,0x02,0x00] 118v_fmac_f32_e64 v5, |v1|, |v2| 119// CHECK: encoding: [0x05,0x80,0x3b,0xd1,0x01,0x05,0x02,0x00] 120v_fmac_f32_e64 v5, v1, v2 clamp 121// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x08] 122v_fmac_f32_e64 v5, v1, v2 mul:2 123// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x10] 124v_fmac_f32_e64 v5, v1, v2 mul:4 125// CHECK: encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x18] 126v_fmac_f32_e64 v5, v1, v2 div:2 127 128// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x00] 129v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 130// CHECK: encoding: [0xfa,0x04,0xfe,0x77,0x01,0xe4,0x00,0x00] 131v_fmac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 132// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0xff,0xe4,0x00,0x00] 133v_fmac_f32_dpp v5, v255, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 134// CHECK: encoding: [0xfa,0xfe,0x0b,0x76,0x01,0xe4,0x00,0x00] 135v_fmac_f32_dpp v5, v1, v255 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 136// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0x00] 137v_fmac_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 138// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0x00] 139v_fmac_f32_dpp v5, v1, v2 row_mirror row_mask:0x0 bank_mask:0x0 140// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0x00] 141v_fmac_f32_dpp v5, v1, v2 row_half_mirror row_mask:0x0 bank_mask:0x0 142// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x42,0x01,0x00] 143v_fmac_f32_dpp v5, v1, v2 row_bcast:15 row_mask:0x0 bank_mask:0x0 144// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x43,0x01,0x00] 145v_fmac_f32_dpp v5, v1, v2 row_bcast:31 row_mask:0x0 bank_mask:0x0 146// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x30,0x01,0x00] 147v_fmac_f32_dpp v5, v1, v2 wave_shl:1 row_mask:0x0 bank_mask:0x0 148// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x34,0x01,0x00] 149v_fmac_f32_dpp v5, v1, v2 wave_rol:1 row_mask:0x0 bank_mask:0x0 150// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x38,0x01,0x00] 151v_fmac_f32_dpp v5, v1, v2 wave_shr:1 row_mask:0x0 bank_mask:0x0 152// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x3c,0x01,0x00] 153v_fmac_f32_dpp v5, v1, v2 wave_ror:1 row_mask:0x0 bank_mask:0x0 154// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0x00] 155v_fmac_f32_dpp v5, v1, v2 row_shl:1 row_mask:0x0 bank_mask:0x0 156// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0x00] 157v_fmac_f32_dpp v5, v1, v2 row_shl:15 row_mask:0x0 bank_mask:0x0 158// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0x00] 159v_fmac_f32_dpp v5, v1, v2 row_shr:1 row_mask:0x0 bank_mask:0x0 160// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0x00] 161v_fmac_f32_dpp v5, v1, v2 row_shr:15 row_mask:0x0 bank_mask:0x0 162// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0x00] 163v_fmac_f32_dpp v5, v1, v2 row_ror:1 row_mask:0x0 bank_mask:0x0 164// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0x00] 165v_fmac_f32_dpp v5, v1, v2 row_ror:15 row_mask:0x0 bank_mask:0x0 166// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x10] 167v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x1 bank_mask:0x0 168// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x30] 169v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x3 bank_mask:0x0 170// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0] 171v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 172// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0] 173v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] bank_mask:0x0 174// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x01] 175v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x1 176// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x03] 177v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x3 178// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f] 179v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf 180// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f] 181v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 182// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x08,0x00] 183v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 184// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x10,0x00] 185v_fmac_f32_dpp v5, -v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 186// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x20,0x00] 187v_fmac_f32_dpp v5, |v1|, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 188// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x40,0x00] 189v_fmac_f32_dpp v5, v1, -v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 190// CHECK: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x80,0x00] 191v_fmac_f32_dpp v5, v1, |v2| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 192 193// CHECK: encoding: [0x01,0x05,0x0a,0x7a] 194v_xnor_b32 v5, v1, v2 195// CHECK: encoding: [0x01,0x05,0xfe,0x7b] 196v_xnor_b32 v255, v1, v2 197// CHECK: encoding: [0xff,0x05,0x0a,0x7a] 198v_xnor_b32 v5, v255, v2 199// CHECK: encoding: [0x01,0x04,0x0a,0x7a] 200v_xnor_b32 v5, s1, v2 201// CHECK: encoding: [0x65,0x04,0x0a,0x7a] 202v_xnor_b32 v5, s101, v2 203// CHECK: encoding: [0x66,0x04,0x0a,0x7a] 204v_xnor_b32 v5, flat_scratch_lo, v2 205// CHECK: encoding: [0x67,0x04,0x0a,0x7a] 206v_xnor_b32 v5, flat_scratch_hi, v2 207// CHECK: encoding: [0x6a,0x04,0x0a,0x7a] 208v_xnor_b32 v5, vcc_lo, v2 209// CHECK: encoding: [0x6b,0x04,0x0a,0x7a] 210v_xnor_b32 v5, vcc_hi, v2 211// CHECK: encoding: [0x7c,0x04,0x0a,0x7a] 212v_xnor_b32 v5, m0, v2 213// CHECK: encoding: [0x7e,0x04,0x0a,0x7a] 214v_xnor_b32 v5, exec_lo, v2 215// CHECK: encoding: [0x7f,0x04,0x0a,0x7a] 216v_xnor_b32 v5, exec_hi, v2 217// CHECK: encoding: [0x80,0x04,0x0a,0x7a] 218v_xnor_b32 v5, 0, v2 219// CHECK: encoding: [0xc1,0x04,0x0a,0x7a] 220v_xnor_b32 v5, -1, v2 221// CHECK: encoding: [0xf0,0x04,0x0a,0x7a] 222v_xnor_b32 v5, 0.5, v2 223// CHECK: encoding: [0xf7,0x04,0x0a,0x7a] 224v_xnor_b32 v5, -4.0, v2 225// CHECK: encoding: [0xff,0x04,0x0a,0x7a,0x56,0x34,0x12,0xaf] 226v_xnor_b32 v5, 0xaf123456, v2 227// CHECK: encoding: [0xff,0x04,0x0a,0x7a,0x73,0x72,0x71,0x3f] 228v_xnor_b32 v5, 0x3f717273, v2 229// CHECK: encoding: [0x01,0xff,0x0b,0x7a] 230v_xnor_b32 v5, v1, v255 231 232// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00] 233v_xnor_b32_e64 v5, v1, v2 234// CHECK: encoding: [0xff,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00] 235v_xnor_b32_e64 v255, v1, v2 236// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0xff,0x05,0x02,0x00] 237v_xnor_b32_e64 v5, v255, v2 238// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0x04,0x02,0x00] 239v_xnor_b32_e64 v5, s1, v2 240// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x65,0x04,0x02,0x00] 241v_xnor_b32_e64 v5, s101, v2 242// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x66,0x04,0x02,0x00] 243v_xnor_b32_e64 v5, flat_scratch_lo, v2 244// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x67,0x04,0x02,0x00] 245v_xnor_b32_e64 v5, flat_scratch_hi, v2 246// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x6a,0x04,0x02,0x00] 247v_xnor_b32_e64 v5, vcc_lo, v2 248// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x6b,0x04,0x02,0x00] 249v_xnor_b32_e64 v5, vcc_hi, v2 250// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x7c,0x04,0x02,0x00] 251v_xnor_b32_e64 v5, m0, v2 252// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x7e,0x04,0x02,0x00] 253v_xnor_b32_e64 v5, exec_lo, v2 254// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x7f,0x04,0x02,0x00] 255v_xnor_b32_e64 v5, exec_hi, v2 256// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x80,0x04,0x02,0x00] 257v_xnor_b32_e64 v5, 0, v2 258// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0xc1,0x04,0x02,0x00] 259v_xnor_b32_e64 v5, -1, v2 260// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0xf0,0x04,0x02,0x00] 261v_xnor_b32_e64 v5, 0.5, v2 262// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0xf7,0x04,0x02,0x00] 263v_xnor_b32_e64 v5, -4.0, v2 264// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xff,0x03,0x00] 265v_xnor_b32_e64 v5, v1, v255 266// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0x05,0x00,0x00] 267v_xnor_b32_e64 v5, v1, s2 268// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcb,0x00,0x00] 269v_xnor_b32_e64 v5, v1, s101 270// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcd,0x00,0x00] 271v_xnor_b32_e64 v5, v1, flat_scratch_lo 272// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcf,0x00,0x00] 273v_xnor_b32_e64 v5, v1, flat_scratch_hi 274// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xd5,0x00,0x00] 275v_xnor_b32_e64 v5, v1, vcc_lo 276// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xd7,0x00,0x00] 277v_xnor_b32_e64 v5, v1, vcc_hi 278// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xf9,0x00,0x00] 279v_xnor_b32_e64 v5, v1, m0 280// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xfd,0x00,0x00] 281v_xnor_b32_e64 v5, v1, exec_lo 282// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xff,0x00,0x00] 283v_xnor_b32_e64 v5, v1, exec_hi 284// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0x01,0x01,0x00] 285v_xnor_b32_e64 v5, v1, 0 286// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0x83,0x01,0x00] 287v_xnor_b32_e64 v5, v1, -1 288// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xe1,0x01,0x00] 289v_xnor_b32_e64 v5, v1, 0.5 290// CHECK: encoding: [0x05,0x00,0x3d,0xd1,0x01,0xef,0x01,0x00] 291v_xnor_b32_e64 v5, v1, -4.0 292 293// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] 294v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 295// CHECK: encoding: [0xf9,0x04,0xfe,0x7b,0x01,0x06,0x06,0x06] 296v_xnor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 297// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0xff,0x06,0x06,0x06] 298v_xnor_b32_sdwa v5, v255, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 299// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x86,0x06] 300v_xnor_b32_sdwa v5, s1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 301// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x65,0x06,0x86,0x06] 302v_xnor_b32_sdwa v5, s101, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 303// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x66,0x06,0x86,0x06] 304v_xnor_b32_sdwa v5, flat_scratch_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 305// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x67,0x06,0x86,0x06] 306v_xnor_b32_sdwa v5, flat_scratch_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 307// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x6a,0x06,0x86,0x06] 308v_xnor_b32_sdwa v5, vcc_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 309// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x6b,0x06,0x86,0x06] 310v_xnor_b32_sdwa v5, vcc_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 311// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x7c,0x06,0x86,0x06] 312v_xnor_b32_sdwa v5, m0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 313// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x7e,0x06,0x86,0x06] 314v_xnor_b32_sdwa v5, exec_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 315// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x7f,0x06,0x86,0x06] 316v_xnor_b32_sdwa v5, exec_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 317// CHECK: encoding: [0xf9,0xfe,0x0b,0x7a,0x01,0x06,0x06,0x06] 318v_xnor_b32_sdwa v5, v1, v255 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 319// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] 320v_xnor_b32_sdwa v5, v1, v2 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 321// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x00,0x06,0x06] 322v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 323// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x01,0x06,0x06] 324v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 325// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x02,0x06,0x06] 326v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_2 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 327// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x03,0x06,0x06] 328v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_3 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 329// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x04,0x06,0x06] 330v_xnor_b32_sdwa v5, v1, v2 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 331// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x05,0x06,0x06] 332v_xnor_b32_sdwa v5, v1, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 333// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x0e,0x06,0x06] 334v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_SEXT src0_sel:DWORD src1_sel:DWORD 335// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06] 336v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD 337// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06] 338v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD src0_sel:DWORD src1_sel:DWORD 339// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] 340v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src1_sel:DWORD 341// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x00,0x06] 342v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD 343// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x01,0x06] 344v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD 345// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x02,0x06] 346v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:DWORD 347// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x03,0x06] 348v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_3 src1_sel:DWORD 349// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x04,0x06] 350v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD 351// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x05,0x06] 352v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 353// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x0e,0x06] 354v_xnor_b32_sdwa v5, sext(v1), v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 355// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] 356v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD 357// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x00] 358v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 359// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x01] 360v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_1 361// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x02] 362v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 363// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x03] 364v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_3 365// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x04] 366v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0 367// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x05] 368v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 369// CHECK: encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x0e] 370v_xnor_b32_sdwa v5, v1, sext(v2) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD 371 372// 373// VOP3P Instructions. 374// 375 376// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 377v_dot2_f32_f16 v0, v1, v2, v3 378// CHECK: encoding: [0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 379v_dot2_i32_i16 v0, v1, v2, v3 380// CHECK: encoding: [0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 381v_dot2_u32_u16 v0, v1, v2, v3 382// CHECK: encoding: [0x00,0x40,0xa8,0xd3,0x01,0x05,0x0e,0x1c] 383v_dot4_i32_i8 v0, v1, v2, v3 384// CHECK: encoding: [0x00,0x40,0xa9,0xd3,0x01,0x05,0x0e,0x1c] 385v_dot4_u32_u8 v0, v1, v2, v3 386// CHECK: encoding: [0x00,0x40,0xaa,0xd3,0x01,0x05,0x0e,0x1c] 387v_dot8_i32_i4 v0, v1, v2, v3 388// CHECK: encoding: [0x00,0x40,0xab,0xd3,0x01,0x05,0x0e,0x1c] 389v_dot8_u32_u4 v0, v1, v2, v3 390 391// 392// Test op_sel/op_sel_hi. 393// 394 395// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 396v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0] 397// CHECK: encoding: [0x00,0x50,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 398v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1] 399// CHECK: encoding: [0x00,0x48,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 400v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0] 401// CHECK: encoding: [0x00,0x58,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 402v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1] 403// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04] 404v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,0] 405// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14] 406v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,1] 407// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c] 408v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,0] 409// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 410v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,1] 411// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04] 412v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] 413// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14] 414v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] 415// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c] 416v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] 417// CHECK: encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 418v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] 419// CHECK: encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x04] 420v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] 421// CHECK: encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x14] 422v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] 423// CHECK: encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x0c] 424v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] 425// CHECK: encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 426v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] 427// CHECK: encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x04] 428v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] 429// CHECK: encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x14] 430v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] 431// CHECK: encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x0c] 432v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] 433// CHECK: encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 434v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] 435// CHECK: encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x04] 436v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] 437// CHECK: encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x14] 438v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] 439// CHECK: encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x0c] 440v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] 441// CHECK: encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 442v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] 443// CHECK: encoding: [0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 444v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0] 445// CHECK: encoding: [0x00,0x50,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 446v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1] 447// CHECK: encoding: [0x00,0x48,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 448v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0] 449// CHECK: encoding: [0x00,0x58,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 450v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1] 451// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04] 452v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,0] 453// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14] 454v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,1] 455// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c] 456v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,0] 457// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 458v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,1] 459// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04] 460v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] 461// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14] 462v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] 463// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c] 464v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] 465// CHECK: encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 466v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] 467// CHECK: encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x04] 468v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] 469// CHECK: encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x14] 470v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] 471// CHECK: encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x0c] 472v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] 473// CHECK: encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 474v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] 475// CHECK: encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x04] 476v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] 477// CHECK: encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x14] 478v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] 479// CHECK: encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x0c] 480v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] 481// CHECK: encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 482v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] 483// CHECK: encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x04] 484v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] 485// CHECK: encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x14] 486v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] 487// CHECK: encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x0c] 488v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] 489// CHECK: encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 490v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] 491// CHECK: encoding: [0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 492v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0] 493// CHECK: encoding: [0x00,0x50,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 494v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1] 495// CHECK: encoding: [0x00,0x48,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 496v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0] 497// CHECK: encoding: [0x00,0x58,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 498v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] 499// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04] 500v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,0] 501// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14] 502v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,1] 503// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c] 504v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,0] 505// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 506v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,1] 507// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04] 508v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] 509// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14] 510v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] 511// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c] 512v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] 513// CHECK: encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 514v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] 515// CHECK: encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x04] 516v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] 517// CHECK: encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x14] 518v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] 519// CHECK: encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x0c] 520v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] 521// CHECK: encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 522v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] 523// CHECK: encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x04] 524v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] 525// CHECK: encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x14] 526v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] 527// CHECK: encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x0c] 528v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] 529// CHECK: encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 530v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] 531// CHECK: encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x04] 532v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] 533// CHECK: encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x14] 534v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] 535// CHECK: encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x0c] 536v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] 537// CHECK: encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 538v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] 539 540// 541// Test clamp. 542// 543 544// CHECK: encoding: [0x00,0xc0,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 545v_dot2_f32_f16 v0, v1, v2, v3 clamp 546// CHECK: encoding: [0x00,0xc0,0xa6,0xd3,0x01,0x05,0x0e,0x1c] 547v_dot2_i32_i16 v0, v1, v2, v3 clamp 548// CHECK: encoding: [0x00,0xc0,0xa7,0xd3,0x01,0x05,0x0e,0x1c] 549v_dot2_u32_u16 v0, v1, v2, v3 clamp 550// CHECK: encoding: [0x00,0xc0,0xa8,0xd3,0x01,0x05,0x0e,0x1c] 551v_dot4_i32_i8 v0, v1, v2, v3 clamp 552// CHECK: encoding: [0x00,0xc0,0xa9,0xd3,0x01,0x05,0x0e,0x1c] 553v_dot4_u32_u8 v0, v1, v2, v3 clamp 554// CHECK: encoding: [0x00,0xc0,0xaa,0xd3,0x01,0x05,0x0e,0x1c] 555v_dot8_i32_i4 v0, v1, v2, v3 clamp 556// CHECK: encoding: [0x00,0xc0,0xab,0xd3,0x01,0x05,0x0e,0x1c] 557v_dot8_u32_u4 v0, v1, v2, v3 clamp 558 559// 560// Test neg_lo/neg_hi. 561// 562 563// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 564v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] 565// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 566v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] 567// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 568v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] 569// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 570v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] 571// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 572v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] 573// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 574v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] 575// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 576v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] 577// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 578v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,0] 579// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 580v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,0] 581// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 582v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,1,0] 583// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 584v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,1] 585// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 586v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,0] 587// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 588v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,1] 589// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 590v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,1] 591// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 592v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[0,0,0] 593// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 594v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[0,0,0] 595// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 596v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[0,0,0] 597// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 598v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[0,0,0] 599// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 600v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[0,0,0] 601// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 602v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[0,0,0] 603// CHECK: encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 604v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[0,0,0] 605// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 606v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[1,0,0] 607// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 608v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,0,0] 609// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 610v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,0,0] 611// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 612v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,0,0] 613// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 614v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,0] 615// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 616v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,0,0] 617// CHECK: encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 618v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,0,0] 619// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 620v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[0,1,0] 621// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 622v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[0,1,0] 623// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 624v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[0,1,0] 625// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 626v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[0,1,0] 627// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 628v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[0,1,0] 629// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 630v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[0,1,0] 631// CHECK: encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 632v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[0,1,0] 633// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 634v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[0,0,1] 635// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 636v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[0,0,1] 637// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 638v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[0,0,1] 639// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 640v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[0,0,1] 641// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 642v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[0,0,1] 643// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 644v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[0,0,1] 645// CHECK: encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 646v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[0,0,1] 647// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 648v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[1,1,0] 649// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 650v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,1,0] 651// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 652v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,1,0] 653// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 654v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,1,0] 655// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 656v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,1,0] 657// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 658v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,1,0] 659// CHECK: encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 660v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,1,0] 661// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 662v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[1,0,1] 663// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 664v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,0,1] 665// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 666v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,0,1] 667// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 668v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,0,1] 669// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 670v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,1] 671// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 672v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,0,1] 673// CHECK: encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 674v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,0,1] 675// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c] 676v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0] neg_hi:[1,1,1] 677// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x3c] 678v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,1,1] 679// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x5c] 680v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,1,1] 681// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x9c] 682v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,1,1] 683// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x7c] 684v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,1,1] 685// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xbc] 686v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,1,1] 687// CHECK: encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xfc] 688v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,1,1] 689