Skip to content

[AMDGPU][True16][MC] update mc test of a few vop1 t16 inst #135588

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

broxigarchen
Copy link
Contributor

@broxigarchen broxigarchen commented Apr 14, 2025

This is a NFC patch.

Regarding a few vop1 true16 instructions, the tablegen change has been done but the test changes are not complete. This patch update mc test of a few vop1 t16 that were missing before.

@broxigarchen broxigarchen force-pushed the main-merge-true16-mc-clean-up-3 branch from cf2e496 to f1181cf Compare April 15, 2025 14:17
@broxigarchen broxigarchen marked this pull request as ready for review April 15, 2025 14:17
@llvmbot llvmbot added backend:AMDGPU mc Machine (object) code labels Apr 15, 2025
@llvmbot
Copy link
Member

llvmbot commented Apr 15, 2025

@llvm/pr-subscribers-mc

@llvm/pr-subscribers-backend-amdgpu

Author: Brox Chen (broxigarchen)

Changes

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

10 Files Affected:

  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s (+770-308)
  • (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop1.s (+273-210)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop1.s (+84)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp16.s (+238-196)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp8.s (+84-42)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop1_t16_err.s (+294)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop1_t16_promote.s (+770-308)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1.s (+274-208)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp16.s (+259-196)
  • (modified) llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp8.s (+119-56)
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
index 5cb81c640f413..6facd4dca01bf 100644
--- a/llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
@@ -2,71 +2,137 @@
 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=GFX11 --implicit-check-not=_e32 %s
 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=GFX11 --implicit-check-not=_e32 %s
 
-v_ceil_f16 v128, 0xfe0b
-// GFX11: v_ceil_f16_e64 v128, 0xfe0b             ; encoding: [0x80,0x00,0xdc,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
+v_ceil_f16 v128.h, 0xfe0b
+// GFX11: v_ceil_f16_e64 v128.h, 0xfe0b op_sel:[0,1] ; encoding: [0x80,0x40,0xdc,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
 
-v_ceil_f16 v255, -1
-// GFX11: v_ceil_f16_e64 v255, -1                 ; encoding: [0xff,0x00,0xdc,0xd5,0xc1,0x00,0x00,0x00]
+v_ceil_f16 v128.l, 0xfe0b
+// GFX11: v_ceil_f16_e64 v128.l, 0xfe0b           ; encoding: [0x80,0x00,0xdc,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
 
-v_ceil_f16 v255, 0.5
-// GFX11: v_ceil_f16_e64 v255, 0.5                ; encoding: [0xff,0x00,0xdc,0xd5,0xf0,0x00,0x00,0x00]
+v_ceil_f16 v255.h, -1
+// GFX11: v_ceil_f16_e64 v255.h, -1 op_sel:[0,1]  ; encoding: [0xff,0x40,0xdc,0xd5,0xc1,0x00,0x00,0x00]
 
-v_ceil_f16 v255, exec_hi
-// GFX11: v_ceil_f16_e64 v255, exec_hi            ; encoding: [0xff,0x00,0xdc,0xd5,0x7f,0x00,0x00,0x00]
+v_ceil_f16 v255.h, 0.5
+// GFX11: v_ceil_f16_e64 v255.h, 0.5 op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0xf0,0x00,0x00,0x00]
 
-v_ceil_f16 v255, exec_lo
-// GFX11: v_ceil_f16_e64 v255, exec_lo            ; encoding: [0xff,0x00,0xdc,0xd5,0x7e,0x00,0x00,0x00]
+v_ceil_f16 v255.h, exec_hi
+// GFX11: v_ceil_f16_e64 v255.h, exec_hi op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x7f,0x00,0x00,0x00]
 
-v_ceil_f16 v255, m0
-// GFX11: v_ceil_f16_e64 v255, m0                 ; encoding: [0xff,0x00,0xdc,0xd5,0x7d,0x00,0x00,0x00]
+v_ceil_f16 v255.h, exec_lo
+// GFX11: v_ceil_f16_e64 v255.h, exec_lo op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x7e,0x00,0x00,0x00]
 
-v_ceil_f16 v255, null
-// GFX11: v_ceil_f16_e64 v255, null               ; encoding: [0xff,0x00,0xdc,0xd5,0x7c,0x00,0x00,0x00]
+v_ceil_f16 v255.h, m0
+// GFX11: v_ceil_f16_e64 v255.h, m0 op_sel:[0,1]  ; encoding: [0xff,0x40,0xdc,0xd5,0x7d,0x00,0x00,0x00]
 
-v_ceil_f16 v255, s1
-// GFX11: v_ceil_f16_e64 v255, s1                 ; encoding: [0xff,0x00,0xdc,0xd5,0x01,0x00,0x00,0x00]
+v_ceil_f16 v255.h, null
+// GFX11: v_ceil_f16_e64 v255.h, null op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x7c,0x00,0x00,0x00]
 
-v_ceil_f16 v255, s105
-// GFX11: v_ceil_f16_e64 v255, s105               ; encoding: [0xff,0x00,0xdc,0xd5,0x69,0x00,0x00,0x00]
+v_ceil_f16 v255.h, s1
+// GFX11: v_ceil_f16_e64 v255.h, s1 op_sel:[0,1]  ; encoding: [0xff,0x40,0xdc,0xd5,0x01,0x00,0x00,0x00]
 
-v_ceil_f16 v255, src_scc
-// GFX11: v_ceil_f16_e64 v255, src_scc            ; encoding: [0xff,0x00,0xdc,0xd5,0xfd,0x00,0x00,0x00]
+v_ceil_f16 v255.h, s105
+// GFX11: v_ceil_f16_e64 v255.h, s105 op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x69,0x00,0x00,0x00]
 
-v_ceil_f16 v255, ttmp15
-// GFX11: v_ceil_f16_e64 v255, ttmp15             ; encoding: [0xff,0x00,0xdc,0xd5,0x7b,0x00,0x00,0x00]
+v_ceil_f16 v255.h, src_scc
+// GFX11: v_ceil_f16_e64 v255.h, src_scc op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0xfd,0x00,0x00,0x00]
 
-v_ceil_f16 v255, v1
-// GFX11: v_ceil_f16_e64 v255, v1                 ; encoding: [0xff,0x00,0xdc,0xd5,0x01,0x01,0x00,0x00]
+v_ceil_f16 v255.h, ttmp15
+// GFX11: v_ceil_f16_e64 v255.h, ttmp15 op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x7b,0x00,0x00,0x00]
 
-v_ceil_f16 v255, v1 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v255, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
+v_ceil_f16 v255.h, v1.h
+// GFX11: v_ceil_f16_e64 v255.h, v1.h op_sel:[1,1] ; encoding: [0xff,0x48,0xdc,0xd5,0x01,0x01,0x00,0x00]
 
-v_ceil_f16 v255, v1 quad_perm:[3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v255, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
+v_ceil_f16 v255.h, v1.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.h, v1.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x48,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
 
-v_ceil_f16 v255, v127
-// GFX11: v_ceil_f16_e64 v255, v127               ; encoding: [0xff,0x00,0xdc,0xd5,0x7f,0x01,0x00,0x00]
+v_ceil_f16 v255.h, v1.h quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.h, v1.h op_sel:[1,1] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x48,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
 
-v_ceil_f16 v255, v127 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v255, v127 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
+v_ceil_f16 v255.h, v127.h
+// GFX11: v_ceil_f16_e64 v255.h, v127.h op_sel:[1,1] ; encoding: [0xff,0x48,0xdc,0xd5,0x7f,0x01,0x00,0x00]
 
-v_ceil_f16 v255, v127 quad_perm:[3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v255, v127 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
+v_ceil_f16 v255.h, v127.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.h, v127.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x48,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
 
-v_ceil_f16 v255, vcc_hi
-// GFX11: v_ceil_f16_e64 v255, vcc_hi             ; encoding: [0xff,0x00,0xdc,0xd5,0x6b,0x00,0x00,0x00]
+v_ceil_f16 v255.h, v127.h quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.h, v127.h op_sel:[1,1] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x48,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
 
-v_ceil_f16 v255, vcc_lo
-// GFX11: v_ceil_f16_e64 v255, vcc_lo             ; encoding: [0xff,0x00,0xdc,0xd5,0x6a,0x00,0x00,0x00]
+v_ceil_f16 v255.h, vcc_hi
+// GFX11: v_ceil_f16_e64 v255.h, vcc_hi op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x6b,0x00,0x00,0x00]
 
-v_ceil_f16 v5, v199
-// GFX11: v_ceil_f16_e64 v5, v199                 ; encoding: [0x05,0x00,0xdc,0xd5,0xc7,0x01,0x00,0x00]
+v_ceil_f16 v255.h, vcc_lo
+// GFX11: v_ceil_f16_e64 v255.h, vcc_lo op_sel:[0,1] ; encoding: [0xff,0x40,0xdc,0xd5,0x6a,0x00,0x00,0x00]
 
-v_ceil_f16 v5, v199 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v5, v199 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0xc7,0x77,0x39,0x05]
+v_ceil_f16 v255.l, -1
+// GFX11: v_ceil_f16_e64 v255.l, -1               ; encoding: [0xff,0x00,0xdc,0xd5,0xc1,0x00,0x00,0x00]
 
-v_ceil_f16 v5, v199 quad_perm:[3,2,1,0]
-// GFX11: v_ceil_f16_e64_dpp v5, v199 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0xc7,0x1b,0x00,0xff]
+v_ceil_f16 v255.l, 0.5
+// GFX11: v_ceil_f16_e64 v255.l, 0.5              ; encoding: [0xff,0x00,0xdc,0xd5,0xf0,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, exec_hi
+// GFX11: v_ceil_f16_e64 v255.l, exec_hi          ; encoding: [0xff,0x00,0xdc,0xd5,0x7f,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, exec_lo
+// GFX11: v_ceil_f16_e64 v255.l, exec_lo          ; encoding: [0xff,0x00,0xdc,0xd5,0x7e,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, m0
+// GFX11: v_ceil_f16_e64 v255.l, m0               ; encoding: [0xff,0x00,0xdc,0xd5,0x7d,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, null
+// GFX11: v_ceil_f16_e64 v255.l, null             ; encoding: [0xff,0x00,0xdc,0xd5,0x7c,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, s1
+// GFX11: v_ceil_f16_e64 v255.l, s1               ; encoding: [0xff,0x00,0xdc,0xd5,0x01,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, s105
+// GFX11: v_ceil_f16_e64 v255.l, s105             ; encoding: [0xff,0x00,0xdc,0xd5,0x69,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, src_scc
+// GFX11: v_ceil_f16_e64 v255.l, src_scc          ; encoding: [0xff,0x00,0xdc,0xd5,0xfd,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, ttmp15
+// GFX11: v_ceil_f16_e64 v255.l, ttmp15           ; encoding: [0xff,0x00,0xdc,0xd5,0x7b,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, v1.l
+// GFX11: v_ceil_f16_e64 v255.l, v1.l             ; encoding: [0xff,0x00,0xdc,0xd5,0x01,0x01,0x00,0x00]
+
+v_ceil_f16 v255.l, v1.l dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.l, v1.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
+
+v_ceil_f16 v255.l, v1.l quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.l, v1.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
+
+v_ceil_f16 v255.l, v127.l
+// GFX11: v_ceil_f16_e64 v255.l, v127.l           ; encoding: [0xff,0x00,0xdc,0xd5,0x7f,0x01,0x00,0x00]
+
+v_ceil_f16 v255.l, v127.l dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.l, v127.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
+
+v_ceil_f16 v255.l, v127.l quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v255.l, v127.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
+
+v_ceil_f16 v255.l, vcc_hi
+// GFX11: v_ceil_f16_e64 v255.l, vcc_hi           ; encoding: [0xff,0x00,0xdc,0xd5,0x6b,0x00,0x00,0x00]
+
+v_ceil_f16 v255.l, vcc_lo
+// GFX11: v_ceil_f16_e64 v255.l, vcc_lo           ; encoding: [0xff,0x00,0xdc,0xd5,0x6a,0x00,0x00,0x00]
+
+v_ceil_f16 v5.h, v199.h
+// GFX11: v_ceil_f16_e64 v5.h, v199.h op_sel:[1,1] ; encoding: [0x05,0x48,0xdc,0xd5,0xc7,0x01,0x00,0x00]
+
+v_ceil_f16 v5.h, v199.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v5.h, v199.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x48,0xdc,0xd5,0xe9,0x00,0x00,0x00,0xc7,0x77,0x39,0x05]
+
+v_ceil_f16 v5.h, v199.h quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v5.h, v199.h op_sel:[1,1] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x48,0xdc,0xd5,0xfa,0x00,0x00,0x00,0xc7,0x1b,0x00,0xff]
+
+v_ceil_f16 v5.l, v199.l
+// GFX11: v_ceil_f16_e64 v5.l, v199.l             ; encoding: [0x05,0x00,0xdc,0xd5,0xc7,0x01,0x00,0x00]
+
+v_ceil_f16 v5.l, v199.l dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v5.l, v199.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0xdc,0xd5,0xe9,0x00,0x00,0x00,0xc7,0x77,0x39,0x05]
+
+v_ceil_f16 v5.l, v199.l quad_perm:[3,2,1,0]
+// GFX11: v_ceil_f16_e64_dpp v5.l, v199.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xdc,0xd5,0xfa,0x00,0x00,0x00,0xc7,0x1b,0x00,0xff]
 
 v_cos_f16 v128.h, 0xfe0b
 // GFX11: v_cos_f16_e64 v128.h, 0xfe0b op_sel:[0,1] ; encoding: [0x80,0x40,0xe1,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
@@ -1160,137 +1226,269 @@ v_cvt_u32_u16 v5, v199.l dpp8:[7,6,5,4,3,2,1,0]
 v_cvt_u32_u16 v5, v199.l quad_perm:[3,2,1,0]
 // GFX11: v_cvt_u32_u16_e64_dpp v5, v199.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xeb,0xd5,0xfa,0x00,0x00,0x00,0xc7,0x1b,0x00,0xff]
 
-v_exp_f16 v128, 0xfe0b
-// GFX11: v_exp_f16_e64 v128, 0xfe0b              ; encoding: [0x80,0x00,0xd8,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
+v_exp_f16 v128.h, 0xfe0b
+// GFX11: v_exp_f16_e64 v128.h, 0xfe0b op_sel:[0,1] ; encoding: [0x80,0x40,0xd8,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
+
+v_exp_f16 v128.l, 0xfe0b
+// GFX11: v_exp_f16_e64 v128.l, 0xfe0b            ; encoding: [0x80,0x00,0xd8,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
+
+v_exp_f16 v255.h, -1
+// GFX11: v_exp_f16_e64 v255.h, -1 op_sel:[0,1]   ; encoding: [0xff,0x40,0xd8,0xd5,0xc1,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, 0.5
+// GFX11: v_exp_f16_e64 v255.h, 0.5 op_sel:[0,1]  ; encoding: [0xff,0x40,0xd8,0xd5,0xf0,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, exec_hi
+// GFX11: v_exp_f16_e64 v255.h, exec_hi op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x7f,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, exec_lo
+// GFX11: v_exp_f16_e64 v255.h, exec_lo op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x7e,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, m0
+// GFX11: v_exp_f16_e64 v255.h, m0 op_sel:[0,1]   ; encoding: [0xff,0x40,0xd8,0xd5,0x7d,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, null
+// GFX11: v_exp_f16_e64 v255.h, null op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x7c,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, s1
+// GFX11: v_exp_f16_e64 v255.h, s1 op_sel:[0,1]   ; encoding: [0xff,0x40,0xd8,0xd5,0x01,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, s105
+// GFX11: v_exp_f16_e64 v255.h, s105 op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x69,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, src_scc
+// GFX11: v_exp_f16_e64 v255.h, src_scc op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0xfd,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, ttmp15
+// GFX11: v_exp_f16_e64 v255.h, ttmp15 op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x7b,0x00,0x00,0x00]
+
+v_exp_f16 v255.h, v1.h
+// GFX11: v_exp_f16_e64 v255.h, v1.h op_sel:[1,1] ; encoding: [0xff,0x48,0xd8,0xd5,0x01,0x01,0x00,0x00]
+
+v_exp_f16 v255.h, v1.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.h, v1.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x48,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
+
+v_exp_f16 v255.h, v1.h quad_perm:[3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.h, v1.h op_sel:[1,1] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x48,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
+
+v_exp_f16 v255.h, v127.h
+// GFX11: v_exp_f16_e64 v255.h, v127.h op_sel:[1,1] ; encoding: [0xff,0x48,0xd8,0xd5,0x7f,0x01,0x00,0x00]
+
+v_exp_f16 v255.h, v127.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.h, v127.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x48,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
+
+v_exp_f16 v255.h, v127.h quad_perm:[3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.h, v127.h op_sel:[1,1] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x48,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
 
-v_exp_f16 v255, -1
-// GFX11: v_exp_f16_e64 v255, -1                  ; encoding: [0xff,0x00,0xd8,0xd5,0xc1,0x00,0x00,0x00]
+v_exp_f16 v255.h, vcc_hi
+// GFX11: v_exp_f16_e64 v255.h, vcc_hi op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x6b,0x00,0x00,0x00]
 
-v_exp_f16 v255, 0.5
-// GFX11: v_exp_f16_e64 v255, 0.5                 ; encoding: [0xff,0x00,0xd8,0xd5,0xf0,0x00,0x00,0x00]
+v_exp_f16 v255.h, vcc_lo
+// GFX11: v_exp_f16_e64 v255.h, vcc_lo op_sel:[0,1] ; encoding: [0xff,0x40,0xd8,0xd5,0x6a,0x00,0x00,0x00]
 
-v_exp_f16 v255, exec_hi
-// GFX11: v_exp_f16_e64 v255, exec_hi             ; encoding: [0xff,0x00,0xd8,0xd5,0x7f,0x00,0x00,0x00]
+v_exp_f16 v255.l, -1
+// GFX11: v_exp_f16_e64 v255.l, -1                ; encoding: [0xff,0x00,0xd8,0xd5,0xc1,0x00,0x00,0x00]
 
-v_exp_f16 v255, exec_lo
-// GFX11: v_exp_f16_e64 v255, exec_lo             ; encoding: [0xff,0x00,0xd8,0xd5,0x7e,0x00,0x00,0x00]
+v_exp_f16 v255.l, 0.5
+// GFX11: v_exp_f16_e64 v255.l, 0.5               ; encoding: [0xff,0x00,0xd8,0xd5,0xf0,0x00,0x00,0x00]
 
-v_exp_f16 v255, m0
-// GFX11: v_exp_f16_e64 v255, m0                  ; encoding: [0xff,0x00,0xd8,0xd5,0x7d,0x00,0x00,0x00]
+v_exp_f16 v255.l, exec_hi
+// GFX11: v_exp_f16_e64 v255.l, exec_hi           ; encoding: [0xff,0x00,0xd8,0xd5,0x7f,0x00,0x00,0x00]
 
-v_exp_f16 v255, null
-// GFX11: v_exp_f16_e64 v255, null                ; encoding: [0xff,0x00,0xd8,0xd5,0x7c,0x00,0x00,0x00]
+v_exp_f16 v255.l, exec_lo
+// GFX11: v_exp_f16_e64 v255.l, exec_lo           ; encoding: [0xff,0x00,0xd8,0xd5,0x7e,0x00,0x00,0x00]
 
-v_exp_f16 v255, s1
-// GFX11: v_exp_f16_e64 v255, s1                  ; encoding: [0xff,0x00,0xd8,0xd5,0x01,0x00,0x00,0x00]
+v_exp_f16 v255.l, m0
+// GFX11: v_exp_f16_e64 v255.l, m0                ; encoding: [0xff,0x00,0xd8,0xd5,0x7d,0x00,0x00,0x00]
 
-v_exp_f16 v255, s105
-// GFX11: v_exp_f16_e64 v255, s105                ; encoding: [0xff,0x00,0xd8,0xd5,0x69,0x00,0x00,0x00]
+v_exp_f16 v255.l, null
+// GFX11: v_exp_f16_e64 v255.l, null              ; encoding: [0xff,0x00,0xd8,0xd5,0x7c,0x00,0x00,0x00]
 
-v_exp_f16 v255, src_scc
-// GFX11: v_exp_f16_e64 v255, src_scc             ; encoding: [0xff,0x00,0xd8,0xd5,0xfd,0x00,0x00,0x00]
+v_exp_f16 v255.l, s1
+// GFX11: v_exp_f16_e64 v255.l, s1                ; encoding: [0xff,0x00,0xd8,0xd5,0x01,0x00,0x00,0x00]
 
-v_exp_f16 v255, ttmp15
-// GFX11: v_exp_f16_e64 v255, ttmp15              ; encoding: [0xff,0x00,0xd8,0xd5,0x7b,0x00,0x00,0x00]
+v_exp_f16 v255.l, s105
+// GFX11: v_exp_f16_e64 v255.l, s105              ; encoding: [0xff,0x00,0xd8,0xd5,0x69,0x00,0x00,0x00]
 
-v_exp_f16 v255, v1
-// GFX11: v_exp_f16_e64 v255, v1                  ; encoding: [0xff,0x00,0xd8,0xd5,0x01,0x01,0x00,0x00]
+v_exp_f16 v255.l, src_scc
+// GFX11: v_exp_f16_e64 v255.l, src_scc           ; encoding: [0xff,0x00,0xd8,0xd5,0xfd,0x00,0x00,0x00]
 
-v_exp_f16 v255, v1 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v255, v1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
+v_exp_f16 v255.l, ttmp15
+// GFX11: v_exp_f16_e64 v255.l, ttmp15            ; encoding: [0xff,0x00,0xd8,0xd5,0x7b,0x00,0x00,0x00]
 
-v_exp_f16 v255, v1 quad_perm:[3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v255, v1 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
+v_exp_f16 v255.l, v1.l
+// GFX11: v_exp_f16_e64 v255.l, v1.l              ; encoding: [0xff,0x00,0xd8,0xd5,0x01,0x01,0x00,0x00]
 
-v_exp_f16 v255, v127
-// GFX11: v_exp_f16_e64 v255, v127                ; encoding: [0xff,0x00,0xd8,0xd5,0x7f,0x01,0x00,0x00]
+v_exp_f16 v255.l, v1.l dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.l, v1.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x01,0x77,0x39,0x05]
 
-v_exp_f16 v255, v127 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v255, v127 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
+v_exp_f16 v255.l, v1.l quad_perm:[3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.l, v1.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x01,0x1b,0x00,0xff]
 
-v_exp_f16 v255, v127 quad_perm:[3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v255, v127 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
+v_exp_f16 v255.l, v127.l
+// GFX11: v_exp_f16_e64 v255.l, v127.l            ; encoding: [0xff,0x00,0xd8,0xd5,0x7f,0x01,0x00,0x00]
 
-v_exp_f16 v255, vcc_hi
-// GFX11: v_exp_f16_e64 v255, vcc_hi              ; encoding: [0xff,0x00,0xd8,0xd5,0x6b,0x00,0x00,0x00]
+v_exp_f16 v255.l, v127.l dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.l, v127.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xff,0x00,0xd8,0xd5,0xe9,0x00,0x00,0x00,0x7f,0x77,0x39,0x05]
 
-v_exp_f16 v255, vcc_lo
-// GFX11: v_exp_f16_e64 v255, vcc_lo              ; encoding: [0xff,0x00,0xd8,0xd5,0x6a,0x00,0x00,0x00]
+v_exp_f16 v255.l, v127.l quad_perm:[3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v255.l, v127.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xff,0x00,0xd8,0xd5,0xfa,0x00,0x00,0x00,0x7f,0x1b,0x00,0xff]
 
-v_exp_f16 v5, v199
-// GFX11: v_exp_f16_e64 v5, v199                  ; encoding: [0x05,0x00,0xd8,0xd5,0xc7,0x01,0x00,0x00]
+v_exp_f16 v255.l, vcc_hi
+// GFX11: v_exp_f16_e64 v255.l, vcc_hi            ; encoding: [0xff,0x00,0xd8,0xd5,0x6b,0x00,0x00,0x00]
 
-v_exp_f16 v5, v199 dpp8:[7,6,5,4,3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v5, v199 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0xd8,0xd5,0xe9,0x00,0x00,0x00,0xc7,0x77,0x39,0x05]
+v_exp_f16 v255.l, vcc_lo
+// GFX11: v_exp_f16_e64 v255.l, vcc_lo            ; encoding: [0xff,0x00,0xd8,0xd5,0x6a,0x00,0x00,0x00]
 
-v_exp_f16 v5, v199 quad_perm:[3,2,1,0]
-// GFX11: v_exp_f16_e64_dpp v5, v199 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0xd8,0xd5,0xfa,0x00,0x00,0x00,0xc7,0x1b,0x00,0xff]
+v_exp_f16 v5.h, v199.h
+// GFX11: v_exp_f16_e64 v5.h, v199.h op_sel:[1,1] ; encoding: [0x05,0x48,0xd8,0xd5,0xc7,0x01,0x00,0x00]
 
-v_floor_f16 v128, 0xfe0b
-// GFX11: v_floor_f16_e64 v128, 0xfe0b            ; encoding: [0x80,0x00,0xdb,0xd5,0xff,0x00,0x00,0x00,0x0b,0xfe,0x00,0x00]
+v_exp_f16 v5.h, v199.h dpp8:[7,6,5,4,3,2,1,0]
+// GFX11: v_exp_f16_e64_dpp v5.h, v199.h op_sel:[1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x48,0xd8,0xd5,0xe9,0x00,0x00,0x00,0xc7,0x77,0x39,0x05]
 
-v_floor_f16 v255, -1
-// GFX11: v_...
[truncated]

@broxigarchen broxigarchen changed the title Main merge true16 mc clean up 3 [AMDGPU][True16][MC] update mc test of a few vop1 t16 inst Apr 15, 2025
@broxigarchen broxigarchen requested a review from Sisyph April 16, 2025 14:03
@broxigarchen broxigarchen force-pushed the main-merge-true16-mc-clean-up-3 branch from f1181cf to 038d7e7 Compare May 5, 2025 16:48
@broxigarchen broxigarchen force-pushed the main-merge-true16-mc-clean-up-3 branch from 038d7e7 to 8a2d0b0 Compare May 5, 2025 16:53
@broxigarchen broxigarchen requested a review from Sisyph May 5, 2025 16:54
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 merged commit 5781b5e into llvm:main May 6, 2025
11 checks passed
GeorgeARM pushed a commit to GeorgeARM/llvm-project that referenced this pull request May 7, 2025
This is a NFC patch.

Regarding a few vop1 true16 instructions, the tablegen change has been
done but the test changes are not complete. This patch update mc test of
a few vop1 t16 that were missing before.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AMDGPU mc Machine (object) code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants