Skip to content

Conversation

@broxigarchen
Copy link
Contributor

@broxigarchen broxigarchen commented Oct 20, 2024

This is a non-functional change

update GFX11/GFX12 VOP2 asm/dasm test for true16/fake16:

  1. duplicate files to be true16/fake16 by adding "-mattr=+real-true16/-mattr=-real-true16" while true16 test file will be updated to true16 format when the true16 instructions are supported
  2. sort "*t16_err.s" and "*t16_promote.s" tests to alphabetic order. This is for the upcoming true16 mc changes, and mainly trying to help repo maintainer to resolve conflicts in the tests quickly. A script is proposed to help for the sorting [AMDGPU][test]added unique and sort options for update_mc_test_check script #111769. Since these two files are t16 only, it should not create conflicts in downstream branches
  3. add -filetype=null to seperate stdout and stderr to avoid disordered output from llvm-mc

@broxigarchen broxigarchen requested review from kosarev and rampitec and removed request for rampitec October 20, 2024 19:04
@llvmbot llvmbot added backend:AMDGPU llvm:mc Machine (object) code labels Oct 20, 2024
@llvmbot
Copy link
Member

llvmbot commented Oct 20, 2024

@llvm/pr-subscribers-mc

Author: Brox Chen (broxigarchen)

Changes

This is a non-functional change

update GFX11/GFX12 VOP2 asm/dasm test for true16/fake16:

  1. duplicate files to be true16/fake16 by adding "-mattr=+-real-true16" while true16 test file will be updated to true16 format when the true16 instructions are supported
  2. sort "t16_err.s" and "t16_promote.s" tests to alphabetic order. This is for the upcoming true16 mc changes, and mainly trying to help repo maintainer to resolve conflicts in the tests quickly. A script is proposed to help for the sorting [AMDGPU][test]added unique and sort options for update_mc_test_check script #111769. Since these two files are t16 only, it should not create conflicts in downstream branches
  3. add -filetype=null to seperate stdout and stderr to avoid disordered output from llvm-mc

Patch is 1.14 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/113101.diff

26 Files Affected:

  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s (+2554)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16-fake16.s (+2114)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8-fake16.s (+451)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_err-fake16.s (+13)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_err.s (+1-1)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_err.s (+155-154)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_promote.s (+131-130)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2-fake16.s (+2560)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases-fake16.s (+19)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases.s (+1-1)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16-fake16.s (+2006)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8-fake16.s (+433)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s (+4-4)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_t16_err.s (+148-147)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_t16_promote.s (+124-123)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2.txt (+735-745)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp16.txt (+764-565)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp8.txt (+99-82)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2.txt (+846-738)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp16.txt (+649-548)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp8.txt (+97-80)
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s
new file mode 100644
index 00000000000000..96dd5720894361
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s
@@ -0,0 +1,2554 @@
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,-real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,-real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s
+
+v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo
+// W32: encoding: [0x01,0x05,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo
+// W32: encoding: [0xff,0x05,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo
+// W32: encoding: [0x01,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo
+// W32: encoding: [0x69,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo
+// W32: encoding: [0x6a,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo
+// W32: encoding: [0x6b,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo
+// W32: encoding: [0x7b,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo
+// W32: encoding: [0x7d,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo
+// W32: encoding: [0x7e,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo
+// W32: encoding: [0x7f,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo
+// W32: encoding: [0x7c,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo
+// W32: encoding: [0xc1,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo
+// W32: encoding: [0xf0,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo
+// W32: encoding: [0xfd,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo
+// W32: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, v1, v2, vcc
+// W64: encoding: [0x01,0x05,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, v255, v2, vcc
+// W64: encoding: [0xff,0x05,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, s1, v2, vcc
+// W64: encoding: [0x01,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, s105, v2, vcc
+// W64: encoding: [0x69,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, vcc_lo, v2, vcc
+// W64: encoding: [0x6a,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, vcc_hi, v2, vcc
+// W64: encoding: [0x6b,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, ttmp15, v2, vcc
+// W64: encoding: [0x7b,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, m0, v2, vcc
+// W64: encoding: [0x7d,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, exec_lo, v2, vcc
+// W64: encoding: [0x7e,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, exec_hi, v2, vcc
+// W64: encoding: [0x7f,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, null, v2, vcc
+// W64: encoding: [0x7c,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, -1, v2, vcc
+// W64: encoding: [0xc1,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, 0.5, v2, vcc
+// W64: encoding: [0xf0,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, src_scc, v2, vcc
+// W64: encoding: [0xfd,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc
+// W64: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x64]
+
+v_add_f16 v5, v127, v2
+// GFX11: encoding: [0x7f,0x05,0x0a,0x64]
+
+v_add_f16 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x64]
+
+v_add_f16 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x64]
+
+v_add_f16 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x64]
+
+v_add_f16 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x64]
+
+v_add_f16 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x64]
+
+v_add_f16 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x64]
+
+v_add_f16 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x64]
+
+v_add_f16 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x64]
+
+v_add_f16 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x64]
+
+v_add_f16 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x64]
+
+v_add_f16 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x64]
+
+v_add_f16 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x64]
+
+v_add_f16 v127, 0xfe0b, v127
+// GFX11: encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00]
+
+v_add_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x06]
+
+v_add_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x06]
+
+v_add_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x06]
+
+v_add_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x06]
+
+v_add_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x06]
+
+v_add_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x06]
+
+v_add_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x06]
+
+v_add_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x06]
+
+v_add_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x06]
+
+v_add_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x06]
+
+v_add_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x06]
+
+v_add_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x06]
+
+v_add_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x06]
+
+v_add_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x06]
+
+v_add_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf]
+
+v_add_nc_u32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x4a]
+
+v_add_nc_u32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x4a]
+
+v_add_nc_u32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf]
+
+v_and_b32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x36]
+
+v_and_b32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x36]
+
+v_and_b32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x36]
+
+v_and_b32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x36]
+
+v_and_b32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x36]
+
+v_and_b32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x36]
+
+v_and_b32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x36]
+
+v_and_b32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x36]
+
+v_and_b32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x36]
+
+v_and_b32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x36]
+
+v_and_b32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x36]
+
+v_and_b32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x36]
+
+v_and_b32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x36]
+
+v_and_b32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x36]
+
+v_and_b32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf]
+
+v_ashrrev_i32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x34]
+
+v_ashrrev_i32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x34]
+
+v_ashrrev_i32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf]
+
+v_cndmask_b32 v5, v1, v2, vcc_lo
+// W32: encoding: [0x01,0x05,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v255, v2, vcc_lo
+// W32: encoding: [0xff,0x05,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s1, v2, vcc_lo
+// W32: encoding: [0x01,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s105, v2, vcc_lo
+// W32: encoding: [0x69,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_lo, v2, vcc_lo
+// W32: encoding: [0x6a,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_hi, v2, vcc_lo
+// W32: encoding: [0x6b,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, ttmp15, v2, vcc_lo
+// W32: encoding: [0x7b,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, m0, v2, vcc_lo
+// W32: encoding: [0x7d,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_lo, v2, vcc_lo
+// W32: encoding: [0x7e,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_hi, v2, vcc_lo
+// W32: encoding: [0x7f,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, null, v2, vcc_lo
+// W32: encoding: [0x7c,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, -1, v2, vcc_lo
+// W32: encoding: [0xc1,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, 0.5, v2, vcc_lo
+// W32: encoding: [0xf0,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, src_scc, v2, vcc_lo
+// W32: encoding: [0xfd,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v255, 0xaf123456, v255, vcc_lo
+// W32: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v1, v2, vcc
+// W64: encoding: [0x01,0x05,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v255, v2, vcc
+// W64: encoding: [0xff,0x05,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s1, v2, vcc
+// W64: encoding: [0x01,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s105, v2, vcc
+// W64: encoding: [0x69,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_lo, v2, vcc
+// W64: encoding: [0x6a,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_hi, v2, vcc
+// W64: encoding: [0x6b,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, ttmp15, v2, vcc
+// W64: encoding: [0x7b,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, m0, v2, vcc
+// W64: encoding: [0x7d,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_lo, v2, vcc
+// W64: encoding: [0x7e,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_hi, v2, vcc
+// W64: encoding: [0x7f,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, null, v2, vcc
+// W64: encoding: [0x7c,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, -1, v2, vcc
+// W64: encoding: [0xc1,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, 0.5, v2, vcc
+// W64: encoding: [0xf0,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, src_scc, v2, vcc
+// W64: encoding: [0xfd,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v255, 0xaf123456, v255, vcc
+// W64: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cvt_pk_rtz_f16_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf]
+
+v_cvt_pkrtz_f16_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf]
+
+v_dot2acc_f32_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v255, 0xfe0b, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00]
+
+v_dot2c_f32_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x04]
+
+v_dot2c_f32_f16 v5, v...
[truncated]

@llvmbot
Copy link
Member

llvmbot commented Oct 20, 2024

@llvm/pr-subscribers-backend-amdgpu

Author: Brox Chen (broxigarchen)

Changes

This is a non-functional change

update GFX11/GFX12 VOP2 asm/dasm test for true16/fake16:

  1. duplicate files to be true16/fake16 by adding "-mattr=+-real-true16" while true16 test file will be updated to true16 format when the true16 instructions are supported
  2. sort "t16_err.s" and "t16_promote.s" tests to alphabetic order. This is for the upcoming true16 mc changes, and mainly trying to help repo maintainer to resolve conflicts in the tests quickly. A script is proposed to help for the sorting [AMDGPU][test]added unique and sort options for update_mc_test_check script #111769. Since these two files are t16 only, it should not create conflicts in downstream branches
  3. add -filetype=null to seperate stdout and stderr to avoid disordered output from llvm-mc

Patch is 1.14 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/113101.diff

26 Files Affected:

  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s (+2554)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16-fake16.s (+2114)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8-fake16.s (+451)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx11_asm_vop2_err-fake16.s (+13)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_err.s (+1-1)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_err.s (+155-154)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_promote.s (+131-130)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2-fake16.s (+2560)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases-fake16.s (+19)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases.s (+1-1)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16-fake16.s (+2006)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s (+4-4)
  • (added) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8-fake16.s (+433)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s (+4-4)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_t16_err.s (+148-147)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop2_t16_promote.s (+124-123)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2.txt (+735-745)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp16.txt (+764-565)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp8.txt (+99-82)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2.txt (+846-738)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp16.txt (+649-548)
  • (modified) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp8.txt (+97-80)
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s
new file mode 100644
index 00000000000000..96dd5720894361
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop2-fake16.s
@@ -0,0 +1,2554 @@
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,-real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,-real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s
+
+v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo
+// W32: encoding: [0x01,0x05,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo
+// W32: encoding: [0xff,0x05,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo
+// W32: encoding: [0x01,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo
+// W32: encoding: [0x69,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo
+// W32: encoding: [0x6a,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo
+// W32: encoding: [0x6b,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo
+// W32: encoding: [0x7b,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo
+// W32: encoding: [0x7d,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo
+// W32: encoding: [0x7e,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo
+// W32: encoding: [0x7f,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo
+// W32: encoding: [0x7c,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo
+// W32: encoding: [0xc1,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo
+// W32: encoding: [0xf0,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo
+// W32: encoding: [0xfd,0x04,0x0a,0x40]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo
+// W32: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, v1, v2, vcc
+// W64: encoding: [0x01,0x05,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, v255, v2, vcc
+// W64: encoding: [0xff,0x05,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, s1, v2, vcc
+// W64: encoding: [0x01,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, s105, v2, vcc
+// W64: encoding: [0x69,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, vcc_lo, v2, vcc
+// W64: encoding: [0x6a,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, vcc_hi, v2, vcc
+// W64: encoding: [0x6b,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, ttmp15, v2, vcc
+// W64: encoding: [0x7b,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, m0, v2, vcc
+// W64: encoding: [0x7d,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, exec_lo, v2, vcc
+// W64: encoding: [0x7e,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, exec_hi, v2, vcc
+// W64: encoding: [0x7f,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, null, v2, vcc
+// W64: encoding: [0x7c,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, -1, v2, vcc
+// W64: encoding: [0xc1,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, 0.5, v2, vcc
+// W64: encoding: [0xf0,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v5, vcc, src_scc, v2, vcc
+// W64: encoding: [0xfd,0x04,0x0a,0x40]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc
+// W64: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_add_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x64]
+
+v_add_f16 v5, v127, v2
+// GFX11: encoding: [0x7f,0x05,0x0a,0x64]
+
+v_add_f16 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x64]
+
+v_add_f16 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x64]
+
+v_add_f16 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x64]
+
+v_add_f16 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x64]
+
+v_add_f16 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x64]
+
+v_add_f16 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x64]
+
+v_add_f16 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x64]
+
+v_add_f16 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x64]
+
+v_add_f16 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x64]
+
+v_add_f16 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x64]
+
+v_add_f16 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x64]
+
+v_add_f16 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x64]
+
+v_add_f16 v127, 0xfe0b, v127
+// GFX11: encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00]
+
+v_add_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x06]
+
+v_add_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x06]
+
+v_add_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x06]
+
+v_add_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x06]
+
+v_add_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x06]
+
+v_add_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x06]
+
+v_add_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x06]
+
+v_add_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x06]
+
+v_add_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x06]
+
+v_add_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x06]
+
+v_add_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x06]
+
+v_add_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x06]
+
+v_add_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x06]
+
+v_add_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x06]
+
+v_add_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf]
+
+v_add_nc_u32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x4a]
+
+v_add_nc_u32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x4a]
+
+v_add_nc_u32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x4a]
+
+v_add_nc_u32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf]
+
+v_and_b32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x36]
+
+v_and_b32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x36]
+
+v_and_b32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x36]
+
+v_and_b32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x36]
+
+v_and_b32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x36]
+
+v_and_b32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x36]
+
+v_and_b32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x36]
+
+v_and_b32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x36]
+
+v_and_b32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x36]
+
+v_and_b32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x36]
+
+v_and_b32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x36]
+
+v_and_b32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x36]
+
+v_and_b32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x36]
+
+v_and_b32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x36]
+
+v_and_b32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf]
+
+v_ashrrev_i32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x34]
+
+v_ashrrev_i32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x34]
+
+v_ashrrev_i32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x34]
+
+v_ashrrev_i32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf]
+
+v_cndmask_b32 v5, v1, v2, vcc_lo
+// W32: encoding: [0x01,0x05,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v255, v2, vcc_lo
+// W32: encoding: [0xff,0x05,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s1, v2, vcc_lo
+// W32: encoding: [0x01,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s105, v2, vcc_lo
+// W32: encoding: [0x69,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_lo, v2, vcc_lo
+// W32: encoding: [0x6a,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_hi, v2, vcc_lo
+// W32: encoding: [0x6b,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, ttmp15, v2, vcc_lo
+// W32: encoding: [0x7b,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, m0, v2, vcc_lo
+// W32: encoding: [0x7d,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_lo, v2, vcc_lo
+// W32: encoding: [0x7e,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_hi, v2, vcc_lo
+// W32: encoding: [0x7f,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, null, v2, vcc_lo
+// W32: encoding: [0x7c,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, -1, v2, vcc_lo
+// W32: encoding: [0xc1,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, 0.5, v2, vcc_lo
+// W32: encoding: [0xf0,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, src_scc, v2, vcc_lo
+// W32: encoding: [0xfd,0x04,0x0a,0x02]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v255, 0xaf123456, v255, vcc_lo
+// W32: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf]
+// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v1, v2, vcc
+// W64: encoding: [0x01,0x05,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, v255, v2, vcc
+// W64: encoding: [0xff,0x05,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s1, v2, vcc
+// W64: encoding: [0x01,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, s105, v2, vcc
+// W64: encoding: [0x69,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_lo, v2, vcc
+// W64: encoding: [0x6a,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, vcc_hi, v2, vcc
+// W64: encoding: [0x6b,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, ttmp15, v2, vcc
+// W64: encoding: [0x7b,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, m0, v2, vcc
+// W64: encoding: [0x7d,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_lo, v2, vcc
+// W64: encoding: [0x7e,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, exec_hi, v2, vcc
+// W64: encoding: [0x7f,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, null, v2, vcc
+// W64: encoding: [0x7c,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, -1, v2, vcc
+// W64: encoding: [0xc1,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, 0.5, v2, vcc
+// W64: encoding: [0xf0,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v5, src_scc, v2, vcc
+// W64: encoding: [0xfd,0x04,0x0a,0x02]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cndmask_b32 v255, 0xaf123456, v255, vcc
+// W64: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf]
+// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
+
+v_cvt_pk_rtz_f16_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x5e]
+
+v_cvt_pk_rtz_f16_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf]
+
+v_cvt_pkrtz_f16_f32 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x5e]
+
+v_cvt_pkrtz_f16_f32 v255, 0xaf123456, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf]
+
+v_dot2acc_f32_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, v255, v2
+// GFX11: encoding: [0xff,0x05,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, s1, v2
+// GFX11: encoding: [0x01,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, s105, v2
+// GFX11: encoding: [0x69,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, vcc_lo, v2
+// GFX11: encoding: [0x6a,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, vcc_hi, v2
+// GFX11: encoding: [0x6b,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, ttmp15, v2
+// GFX11: encoding: [0x7b,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, m0, v2
+// GFX11: encoding: [0x7d,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, exec_lo, v2
+// GFX11: encoding: [0x7e,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, exec_hi, v2
+// GFX11: encoding: [0x7f,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, null, v2
+// GFX11: encoding: [0x7c,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, -1, v2
+// GFX11: encoding: [0xc1,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, 0.5, v2
+// GFX11: encoding: [0xf0,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v5, src_scc, v2
+// GFX11: encoding: [0xfd,0x04,0x0a,0x04]
+
+v_dot2acc_f32_f16 v255, 0xfe0b, v255
+// GFX11: encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00]
+
+v_dot2c_f32_f16 v5, v1, v2
+// GFX11: encoding: [0x01,0x05,0x0a,0x04]
+
+v_dot2c_f32_f16 v5, v...
[truncated]

@broxigarchen
Copy link
Contributor Author

ping!

@Sisyph
Copy link
Contributor

Sisyph commented Oct 24, 2024

For clarity, please correct these typos in the commit message.

1. duplicate files to be true16/fake16 by adding "-mattr=+-real-true16" while true16 test file will be updated to true16 format when the true16 instructions are supported

should be "-mattr=+real-true16"

2. sort "t16_err.s" and "t16_promote.s" tests to alphabetic order. 

should be "*t16_err.s" and "*t16_promote.s"

@broxigarchen
Copy link
Contributor Author

For clarity, please correct these typos in the commit message.

1. duplicate files to be true16/fake16 by adding "-mattr=+-real-true16" while true16 test file will be updated to true16 format when the true16 instructions are supported

should be "-mattr=+real-true16"

2. sort "t16_err.s" and "t16_promote.s" tests to alphabetic order. 

should be "*t16_err.s" and "*t16_promote.s"

done!

Copy link
Contributor

@Sisyph Sisyph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@broxigarchen broxigarchen requested a review from kosarev October 29, 2024 15:35
@broxigarchen broxigarchen force-pushed the main-merge-true16-vop2-mc-test branch from 2337058 to 14a4f8c Compare October 29, 2024 21:37
Copy link
Contributor

@arsenm arsenm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer for documentation purposes at least to sort by most matched prefixes.

The divergence in different update_test scripts is also annoying

@broxigarchen
Copy link
Contributor Author

I would prefer for documentation purposes at least to sort by most matched prefixes.

The divergence in different update_test scripts is also annoying

I see. I think I'll add some comments on top of the script to explain about what it does. Thanks!

@broxigarchen broxigarchen merged commit 0227b73 into llvm:main Oct 30, 2024
8 checks passed
NoumanAmir657 pushed a commit to NoumanAmir657/llvm-project that referenced this pull request Nov 4, 2024
…lvm#113101)

This is a non-functional change

update GFX11/GFX12 VOP2 asm/dasm test for true16/fake16:

1. duplicate files to be true16/fake16 by adding
"-mattr=+real-true16/-mattr=-real-true16" while true16 test file will be
updated to true16 format when the true16 instructions are supported
2. sort "*t16_err.s" and "*t16_promote.s" tests to alphabetic order.
This is for the upcoming true16 mc changes, and mainly trying to help
repo maintainer to resolve conflicts in the tests quickly. A script is
proposed to help for the sorting
llvm#111769. Since these two files
are t16 only, it should not create conflicts in downstream branches
3. add -filetype=null to seperate stdout and stderr to avoid disordered
output from llvm-mc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AMDGPU llvm:mc Machine (object) code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants