339 lines · plain
1// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 %s 2>&1 | FileCheck %s -check-prefix=GFX11 --implicit-check-not=error: --strict-whitespace2 3//===----------------------------------------------------------------------===//4// A VOPD instruction can use only one literal.5//===----------------------------------------------------------------------===//6 7v_dual_mul_f32 v11, 0x24681357, v2 :: v_dual_mul_f32 v10, 0xbabe, v58// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed9// GFX11-NEXT:{{^}}v_dual_mul_f32 v11, 0x24681357, v2 :: v_dual_mul_f32 v10, 0xbabe, v510// GFX11-NEXT:{{^}} ^11 12//===----------------------------------------------------------------------===//13// When 2 different literals are specified, show the location14// of the last literal which is not a KImm, if any.15//===----------------------------------------------------------------------===//16 17v_dual_fmamk_f32 v122, v74, 0xa0172923, v161 :: v_dual_lshlrev_b32 v247, 0xbabe, v9918// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed19// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, v74, 0xa0172923, v161 :: v_dual_lshlrev_b32 v247, 0xbabe, v9920// GFX11-NEXT:{{^}} ^21 22v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, v3, v1, 0xbabe23// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed24// GFX11-NEXT:{{^}}v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, v3, v1, 0xbabe25// GFX11-NEXT:{{^}} ^26 27v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, 0xbabe, v1, 0xbabe28// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed29// GFX11-NEXT:{{^}}v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, 0xbabe, v1, 0xbabe30// GFX11-NEXT:{{^}} ^31 32v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0x1234, v16233// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed34// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0x1234, v16235// GFX11-NEXT:{{^}} ^36 37v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, s0, 0x1234, v16238// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed39// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, s0, 0x1234, v16240// GFX11-NEXT:{{^}} ^41 42//===----------------------------------------------------------------------===//43// Check that KImm operands are counted as literals44// even if they look like inline constants.45//===----------------------------------------------------------------------===//46 47v_dual_fmamk_f32 v122, v74, 0, v161 :: v_dual_lshlrev_b32 v247, 0xbabe, v9948// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed49// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, v74, 0, v161 :: v_dual_lshlrev_b32 v247, 0xbabe, v9950// GFX11-NEXT:{{^}} ^51 52v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, v3, v1, 1.053// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed54// GFX11-NEXT:{{^}}v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, v3, v1, 1.055// GFX11-NEXT:{{^}} ^56 57v_dual_fmamk_f32 v122, 0xdeadbeef, 2, v161 :: v_dual_fmamk_f32 v123, s0, 1, v16258// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed59// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 2, v161 :: v_dual_fmamk_f32 v123, s0, 1, v16260// GFX11-NEXT:{{^}} ^61 62v_dual_fmamk_f32 v122, v1, 2, v161 :: v_dual_fmamk_f32 v123, s0, 1, v16263// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed64// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, v1, 2, v161 :: v_dual_fmamk_f32 v123, s0, 1, v16265// GFX11-NEXT:{{^}} ^66 67//===----------------------------------------------------------------------===//68// Check that assembler detects a different literal regardless of its location.69//===----------------------------------------------------------------------===//70 71v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0x1234, v16272// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed73// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0x1234, v16274// GFX11-NEXT:{{^}} ^75 76v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0x1234, 0xdeadbeef, v16277// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed78// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0x1234, 0xdeadbeef, v16279// GFX11-NEXT:{{^}} ^80 81v_dual_fmamk_f32 v122, 0xdeadbeef, 0x1234, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0xdeadbeef, v16282// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed83// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0xdeadbeef, 0x1234, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0xdeadbeef, v16284// GFX11-NEXT:{{^}} ^85 86v_dual_fmamk_f32 v122, 0x1234, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0xdeadbeef, v16287// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed88// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, 0x1234, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, 0xdeadbeef, 0xdeadbeef, v16289// GFX11-NEXT:{{^}} ^90 91//===----------------------------------------------------------------------===//92// When 2 different literals are specified and all literals are KImm,93// show the location of the last KImm literal.94//===----------------------------------------------------------------------===//95 96v_dual_fmamk_f32 v122, s0, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, s0, 0x1234, v16297// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed98// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, s0, 0xdeadbeef, v161 :: v_dual_fmamk_f32 v123, s0, 0x1234, v16299// GFX11-NEXT:{{^}} ^100 101//===----------------------------------------------------------------------===//102// A VOPD instruction cannot use more than 2 scalar operands.103//===----------------------------------------------------------------------===//104 105// 2 different SGPRs + LITERAL106 107v_dual_fmaak_f32 v122, s74, v161, 2.741 :: v_dual_and_b32 v247, s75, v98108// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)109// GFX11-NEXT:{{^}}v_dual_fmaak_f32 v122, s74, v161, 2.741 :: v_dual_and_b32 v247, s75, v98110// GFX11-NEXT:{{^}} ^111 112v_dual_mov_b32 v247, s73 :: v_dual_fmaak_f32 v122, s74, v161, 2.741113// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)114// GFX11-NEXT:{{^}}v_dual_mov_b32 v247, s73 :: v_dual_fmaak_f32 v122, s74, v161, 2.741115// GFX11-NEXT:{{^}} ^116 117v_dual_fmamk_f32 v122, s0, 0xbabe, v161 :: v_dual_fmamk_f32 v123, s1, 0xbabe, v162118// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)119// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v122, s0, 0xbabe, v161 :: v_dual_fmamk_f32 v123, s1, 0xbabe, v162120// GFX11-NEXT:{{^}} ^121 122// 2 different SGPRs + VCC123 124v_dual_add_f32 v255, s1, v2 :: v_dual_cndmask_b32 v6, s2, v3125// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)126// GFX11-NEXT:{{^}}v_dual_add_f32 v255, s1, v2 :: v_dual_cndmask_b32 v6, s2, v3127// GFX11-NEXT:{{^}} ^128 129v_dual_cndmask_b32 v6, s1, v3 :: v_dual_add_f32 v255, s2, v2130// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)131// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v6, s1, v3 :: v_dual_add_f32 v255, s2, v2132// GFX11-NEXT:{{^}} ^133 134v_dual_cndmask_b32 v255, s1, v2 :: v_dual_cndmask_b32 v6, s2, v3135// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)136// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v255, s1, v2 :: v_dual_cndmask_b32 v6, s2, v3137// GFX11-NEXT:{{^}} ^138 139// SGPR + LITERAL + VCC140 141v_dual_cndmask_b32 v255, s1, v2 :: v_dual_mov_b32 v254, 0xbabe142// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)143// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v255, s1, v2 :: v_dual_mov_b32 v254, 0xbabe144// GFX11-NEXT:{{^}} ^145 146v_dual_cndmask_b32 v255, 0xbabe, v2 :: v_dual_mov_b32 v254, s1147// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)148// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v255, 0xbabe, v2 :: v_dual_mov_b32 v254, s1149// GFX11-NEXT:{{^}} ^150 151v_dual_cndmask_b32 v255, s3, v2 :: v_dual_fmamk_f32 v254, v1, 0xbabe, v162152// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)153// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v255, s3, v2 :: v_dual_fmamk_f32 v254, v1, 0xbabe, v162154// GFX11-NEXT:{{^}} ^155 156v_dual_cndmask_b32 v255, v1, v2 :: v_dual_fmamk_f32 v254, s3, 0xbabe, v162157// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)158// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v255, v1, v2 :: v_dual_fmamk_f32 v254, s3, 0xbabe, v162159// GFX11-NEXT:{{^}} ^160 161// SGPR + VCC + VCC_LO162// This is a special case because implicit VCC operand has 64 bit size.163// SP3 does not accept this instruction as well.164 165v_dual_add_f32 v255, vcc_lo, v2 :: v_dual_cndmask_b32 v6, s1, v3166// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)167// GFX11-NEXT:{{^}}v_dual_add_f32 v255, vcc_lo, v2 :: v_dual_cndmask_b32 v6, s1, v3168// GFX11-NEXT:{{^}} ^169 170//===----------------------------------------------------------------------===//171// One dst register must be even and the other odd.172//===----------------------------------------------------------------------===//173 174v_dual_add_f32 v0, v4, v2 :: v_dual_add_f32 v2, v1, v3175// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd176// GFX11-NEXT:{{^}}v_dual_add_f32 v0, v4, v2 :: v_dual_add_f32 v2, v1, v3177// GFX11-NEXT:{{^}} ^178 179v_dual_mov_b32 v1, v4 :: v_dual_add_f32 v5, v1, v3180// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd181// GFX11-NEXT:{{^}}v_dual_mov_b32 v1, v4 :: v_dual_add_f32 v5, v1, v3182// GFX11-NEXT:{{^}} ^183 184v_dual_cndmask_b32 v2, v4, v5 :: v_dual_add_f32 v8, v5, v6185// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd186// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v2, v4, v5 :: v_dual_add_f32 v8, v5, v6187// GFX11-NEXT:{{^}} ^188 189v_dual_fmac_f32 v3, v4, v5 :: v_dual_add_f32 v9, v5, v6190// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd191// GFX11-NEXT:{{^}}v_dual_fmac_f32 v3, v4, v5 :: v_dual_add_f32 v9, v5, v6192// GFX11-NEXT:{{^}} ^193 194v_dual_fmaak_f32 v4, v4, v5, 0xaf123456 :: v_dual_add_f32 v0, v5, v6195// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd196// GFX11-NEXT:{{^}}v_dual_fmaak_f32 v4, v4, v5, 0xaf123456 :: v_dual_add_f32 v0, v5, v6197// GFX11-NEXT:{{^}} ^198 199v_dual_fmamk_f32 v5, v4, 0xaf123456, v6 :: v_dual_add_f32 v1, v5, v6200// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: one dst register must be even and the other odd201// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v5, v4, 0xaf123456, v6 :: v_dual_add_f32 v1, v5, v6202// GFX11-NEXT:{{^}} ^203 204//===----------------------------------------------------------------------===//205// Src0 operands must use different VGPR banks.206//===----------------------------------------------------------------------===//207 208v_dual_add_f32 v1, v1, v5 :: v_dual_mov_b32 v2, v1209// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks210// GFX11-NEXT:{{^}}v_dual_add_f32 v1, v1, v5 :: v_dual_mov_b32 v2, v1211// GFX11-NEXT:{{^}} ^212 213v_dual_mov_b32 v1, v2 :: v_dual_add_f32 v2, v6, v6214// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks215// GFX11-NEXT:{{^}}v_dual_mov_b32 v1, v2 :: v_dual_add_f32 v2, v6, v6216// GFX11-NEXT:{{^}} ^217 218v_dual_cndmask_b32 v1, v3, v5 :: v_dual_add_f32 v2, v11, v6219// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks220// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v1, v3, v5 :: v_dual_add_f32 v2, v11, v6221// GFX11-NEXT:{{^}} ^222 223v_dual_fmac_f32 v1, v4, v5 :: v_dual_add_f32 v2, v44, v6224// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks225// GFX11-NEXT:{{^}}v_dual_fmac_f32 v1, v4, v5 :: v_dual_add_f32 v2, v44, v6226// GFX11-NEXT:{{^}} ^227 228v_dual_fmaak_f32 v1, v5, v5, 0xaf123456 :: v_dual_add_f32 v2, v25, v6229// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks230// GFX11-NEXT:{{^}}v_dual_fmaak_f32 v1, v5, v5, 0xaf123456 :: v_dual_add_f32 v2, v25, v6231// GFX11-NEXT:{{^}} ^232 233v_dual_fmamk_f32 v1, v6, 0xaf123456, v6 :: v_dual_add_f32 v2, v2, v6234// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src0 operands must use different VGPR banks235// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v1, v6, 0xaf123456, v6 :: v_dual_add_f32 v2, v2, v6236// GFX11-NEXT:{{^}} ^237 238//===----------------------------------------------------------------------===//239// Src1 operands must use different VGPR banks.240//===----------------------------------------------------------------------===//241 242v_dual_add_f32 v1, v4, v0 :: v_dual_add_f32 v2, v5, v4243// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks244// GFX11-NEXT:{{^}}v_dual_add_f32 v1, v4, v0 :: v_dual_add_f32 v2, v5, v4245// GFX11-NEXT:{{^}} ^246 247v_dual_cndmask_b32 v1, v4, v1 :: v_dual_add_f32 v2, v5, v9248// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks249// GFX11-NEXT:{{^}}v_dual_cndmask_b32 v1, v4, v1 :: v_dual_add_f32 v2, v5, v9250// GFX11-NEXT:{{^}} ^251 252v_dual_fmac_f32 v1, v4, v2 :: v_dual_add_f32 v2, v5, v14253// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks254// GFX11-NEXT:{{^}}v_dual_fmac_f32 v1, v4, v2 :: v_dual_add_f32 v2, v5, v14255// GFX11-NEXT:{{^}} ^256 257v_dual_fmaak_f32 v1, v4, v3, 0xaf123456 :: v_dual_add_f32 v2, v5, v23258// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks259// GFX11-NEXT:{{^}}v_dual_fmaak_f32 v1, v4, v3, 0xaf123456 :: v_dual_add_f32 v2, v5, v23260// GFX11-NEXT:{{^}} ^261 262v_dual_add_f32 v2, v4, v4 :: v_dual_cndmask_b32 v1, v5, v0263// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks264// GFX11-NEXT:{{^}}v_dual_add_f32 v2, v4, v4 :: v_dual_cndmask_b32 v1, v5, v0265// GFX11-NEXT:{{^}} ^266 267v_dual_add_f32 v2, v4, v5 :: v_dual_fmac_f32 v1, v5, v1268// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks269// GFX11-NEXT:{{^}}v_dual_add_f32 v2, v4, v5 :: v_dual_fmac_f32 v1, v5, v1270// GFX11-NEXT:{{^}} ^271 272v_dual_fmaak_f32 v1, v4, v3, 0xaf123456 :: v_dual_fmaak_f32 v2, v5, v23, 0xaf123456273// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 operands must use different VGPR banks274// GFX11-NEXT:{{^}}v_dual_fmaak_f32 v1, v4, v3, 0xaf123456 :: v_dual_fmaak_f32 v2, v5, v23, 0xaf123456275// GFX11-NEXT:{{^}} ^276 277//===----------------------------------------------------------------------===//278// Src2 operands must use different VGPR banks.279//===----------------------------------------------------------------------===//280 281v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 :: v_dual_fmamk_f32 v5, v2, 0xaf123456, v5282// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src2 operands must use different VGPR banks283// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 :: v_dual_fmamk_f32 v5, v2, 0xaf123456, v5284// GFX11-NEXT:{{^}} ^285 286v_dual_fmac_f32 v7, v1, v2 :: v_dual_fmamk_f32 v6, v2, 0xaf123456, v3287// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src2 operands must use different VGPR banks288// GFX11-NEXT:{{^}}v_dual_fmac_f32 v7, v1, v2 :: v_dual_fmamk_f32 v6, v2, 0xaf123456, v3289// GFX11-NEXT:{{^}} ^290 291v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 :: v_dual_fmac_f32 v5, v2, v3292// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src2 operands must use different VGPR banks293// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 :: v_dual_fmac_f32 v5, v2, v3294// GFX11-NEXT:{{^}} ^295 296//===----------------------------------------------------------------------===//297// Check invalid VOPD syntax.298//===----------------------------------------------------------------------===//299 300v_dual_fmamk_f32 v6, v1, 0xaf123456, v2 : : v_dual_fmac_f32 v5, v2, v3301// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression302// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v2 : : v_dual_fmac_f32 v5, v2, v3303// GFX11-NEXT:{{^}} ^304 305v_dual_fmamk_f32 v6, v1, 0xaf123456, v3306// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction307// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v3308// GFX11-NEXT:{{^}}^309 310v_dual_fmamk_f32 v6, v1, 0xaf123456, v2 :: v_dual_fmac_f32311// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction312// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v2 :: v_dual_fmac_f32313// GFX11-NEXT:{{^}}^314 315v_dual_add_f32 v255, v4 :: v_add_f32 v6, v1, v3316// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction317// GFX11-NEXT:{{^}}v_dual_add_f32 v255, v4 :: v_add_f32 v6, v1, v3318// GFX11-NEXT:{{^}} ^319 320v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 ::321// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a VOPDY instruction after ::322// GFX11-NEXT:{{^}}v_dual_fmamk_f32 v6, v1, 0xaf123456, v3 ::323// GFX11-NEXT:{{^}} ^324 325v_add_f32 v6, v1, v3 ::326// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a VOPDY instruction after ::327// GFX11-NEXT:{{^}}v_add_f32 v6, v1, v3 ::328// GFX11-NEXT:{{^}} ^329 330v_dual_add_f32 v255::331// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a VOPDY instruction after ::332// GFX11-NEXT:{{^}}v_dual_add_f32 v255::333// GFX11-NEXT:{{^}} ^334 335v_dual_add_f32 v255, v4, v2 :: v_add_f32 v6, v1, v3336// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid VOPDY instruction337// GFX11-NEXT:{{^}}v_dual_add_f32 v255, v4, v2 :: v_add_f32 v6, v1, v3338// GFX11-NEXT:{{^}} ^339