diff --git a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td --- a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td @@ -359,10 +359,14 @@ } // End SubtargetPredicate = HasDot1Insts +def DOT2_BF16_Profile + : VOP3P_Profile { + let HasSrc1Mods = 1; +} + let SubtargetPredicate = HasDot8Insts in { -defm V_DOT2_F32_BF16 : VOP3PInst<"v_dot2_f32_bf16", - VOP3P_Profile, +defm V_DOT2_F32_BF16 : VOP3PInst<"v_dot2_f32_bf16", DOT2_BF16_Profile, int_amdgcn_fdot2_f32_bf16, 1>; } // End SubtargetPredicate = HasDot8Insts diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3p.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p.s --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3p.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p.s @@ -42,8 +42,8 @@ v_dot2_f32_bf16 v5, src_scc, vcc_lo, src_scc neg_lo:[1,0,0] neg_hi:[1,0,0] // GFX11: [0x05,0x41,0x1a,0xcc,0xfd,0xd4,0xf4,0x3b] -v_dot2_f32_bf16 v255, 0xfe0b, vcc_hi, 0.5 neg_lo:[0,0,0] neg_hi:[0,0,0] clamp -// GFX11: [0xff,0xc0,0x1a,0xcc,0xff,0xd6,0xc0,0x1b,0x0b,0xfe,0x00,0x00] +v_dot2_f32_bf16 v255, 0xfe0b, vcc_hi, 0.5 neg_lo:[0,1,0] neg_hi:[0,1,0] clamp +// GFX11: [0xff,0xc2,0x1a,0xcc,0xff,0xd6,0xc0,0x5b,0x0b,0xfe,0x00,0x00] v_dot2_f32_f16 v5, v1, v2, s3 // GFX11: [0x05,0x40,0x13,0xcc,0x01,0x05,0x0e,0x18] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_features.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_features.s --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_features.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_features.s @@ -140,4 +140,4 @@ // GFX11: v_dot2_f32_bf16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0x1a,0xcc,0x01,0x05,0x0e,0x1c] v_dot2_f32_bf16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,1] -// GFX11: v_dot2_f32_bf16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0x1a,0xcc,0x01,0x05,0x0e,0x3c] +// GFX11: v_dot2_f32_bf16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0x1a,0xcc,0x01,0x05,0x0e,0x7c] diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p.txt --- a/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p.txt @@ -46,6 +46,9 @@ # GFX11: v_dot2_f32_bf16 v255, 0xfe0b, vcc_hi, 0.5 neg_lo:[1,0,0] neg_hi:[1,0,0] clamp ; encoding: [0xff,0xc1,0x1a,0xcc,0xff,0xd6,0xc0,0x3b,0x0b,0xfe,0x00,0x00] 0xff,0xc1,0x1a,0xcc,0xff,0xd6,0xc0,0x3b,0x0b,0xfe,0x00,0x00 +# GFX11: v_dot2_f32_bf16 v255, 0xfe0b, vcc_hi, 0.5 neg_lo:[0,1,0] neg_hi:[0,1,0] clamp ; encoding: [0xff,0xc2,0x1a,0xcc,0xff,0xd6,0xc0,0x5b,0x0b,0xfe,0x00,0x00] +0xff,0xc2,0x1a,0xcc,0xff,0xd6,0xc0,0x5b,0x0b,0xfe,0x00,0x00 + # GFX11: v_dot2_f32_f16 v5, v1, v2, s3 ; encoding: [0x05,0x40,0x13,0xcc,0x01,0x05,0x0e,0x18] 0x05,0x40,0x13,0xcc,0x01,0x05,0x0e,0x18