[llvm] [AMDGPU][NFC] Templatise and roundtrip gfx12_asm_vopc.s (PR #208265)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 8 09:55:40 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Ivan Kosarev (kosarev)

<details>
<summary>Changes</summary>

This is just an amended version of the corresponding gfx11 test.

Eliminates the current largest contributor into the undesired delta vs the downstream True16 branch across MC tests.

---

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


3 Files Affected:

- (modified) llvm/test/MC/AMDGPU/gfx12_asm_vopc.s (+6192-5040) 
- (added) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc-fake16.txt (+4997) 
- (removed) llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt (-6039) 


``````````diff
diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
index af7106448b8a9..dfc2d533730b1 100644
--- a/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
@@ -1,80 +1,213 @@
-// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5
+// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --sort --version 5
 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W32,GFX12-W32 %s
-// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W32,GFX13-W32 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W32,GFX13-W32,GFX13-W32-ASM %s
 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W64,GFX12-W64 %s
-// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W64,GFX13-W64 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=W64,GFX13-W64,GFX13-W64-ASM %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -disassemble -show-encoding | FileCheck --strict-whitespace --check-prefixes=W32,GFX12-W32 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize32,+real-true16 -disassemble -show-encoding | FileCheck --strict-whitespace --check-prefixes=W32,GFX13-W32,GFX13-W32-DIS %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -disassemble -show-encoding | FileCheck --strict-whitespace --check-prefixes=W64,GFX12-W64 %s
+// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize64,+real-true16 -disassemble -show-encoding | FileCheck --strict-whitespace --check-prefixes=W64,GFX13-W64,GFX13-W64-DIS %s
 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -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=gfx1310 -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=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s
 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1310 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s
 
-v_cmp_class_f16 vcc_lo, v1.l, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, v1.l, v2.l  ; encoding: [0x01,0x05,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, v127.l, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, v127.l, v2.l ; encoding: [0x7f,0x05,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, s1, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, s1, v2.l    ; encoding: [0x01,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, s105, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, s105, v2.l  ; encoding: [0x69,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, vcc_lo, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, vcc_lo, v2.l ; encoding: [0x6a,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, vcc_hi, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, vcc_hi, v2.l ; encoding: [0x6b,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, ttmp15, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, ttmp15, v2.l ; encoding: [0x7b,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, m0, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, m0, v2.l    ; encoding: [0x7d,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
-
-v_cmp_class_f16 vcc_lo, exec_lo, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, exec_lo, v2.l ; encoding: [0x7e,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+//  INSTS=
+//      v_cmp_class_f16 <OPS16>
+//      v_cmp_class_f32 <OPS32>
+//      v_cmp_class_f64 <VCC>, <SRC64>, v2
+//      v_cmp_class_f64 <VCC>, v[1:2], <VGPR32>
+//      v_cmp_eq_f16 <OPS16>
+//      v_cmp_eq_f32 <OPS32>
+//      v_cmp_eq_f64 <OPS64>
+//      v_cmp_eq_i16 <OPS16>
+//      v_cmp_eq_i32 <OPS32>
+//      v_cmp_eq_i64 <OPS64>
+//      v_cmp_eq_u16 <OPS16>
+//      v_cmp_eq_u32 <OPS32>
+//      v_cmp_eq_u64 <OPS64>
+//      v_cmp_ge_f16 <OPS16>
+//      v_cmp_ge_f32 <OPS32>
+//      v_cmp_ge_f64 <OPS64>
+//      v_cmp_ge_i16 <OPS16>
+//      v_cmp_ge_i32 <OPS32>
+//      v_cmp_ge_i64 <OPS64>
+//      v_cmp_ge_u16 <OPS16>
+//      v_cmp_ge_u32 <OPS32>
+//      v_cmp_ge_u64 <OPS64>
+//      v_cmp_gt_f16 <OPS16>
+//      v_cmp_gt_f32 <OPS32>
+//      v_cmp_gt_f64 <OPS64>
+//      v_cmp_gt_i16 <OPS16>
+//      v_cmp_gt_i32 <OPS32>
+//      v_cmp_gt_i64 <OPS64>
+//      v_cmp_gt_u16 <OPS16>
+//      v_cmp_gt_u32 <OPS32>
+//      v_cmp_gt_u64 <OPS64>
+//      v_cmp_le_f16 <OPS16>
+//      v_cmp_le_f32 <OPS32>
+//      v_cmp_le_f64 <OPS64>
+//      v_cmp_le_i16 <OPS16>
+//      v_cmp_le_i32 <OPS32>
+//      v_cmp_le_i64 <OPS64>
+//      v_cmp_le_u16 <OPS16>
+//      v_cmp_le_u32 <OPS32>
+//      v_cmp_le_u64 <OPS64>
+//      v_cmp_lg_f16 <OPS16>
+//      v_cmp_lg_f32 <OPS32>
+//      v_cmp_lg_f64 <OPS64>
+//      v_cmp_lt_f16 <OPS16>
+//      v_cmp_lt_f32 <OPS32>
+//      v_cmp_lt_f64 <OPS64>
+//      v_cmp_lt_i16 <OPS16>
+//      v_cmp_lt_i32 <OPS32>
+//      v_cmp_lt_i64 <OPS64>
+//      v_cmp_lt_u16 <OPS16>
+//      v_cmp_lt_u32 <OPS32>
+//      v_cmp_lt_u64 <OPS64>
+//      v_cmp_ne_i16 <OPS16>
+//      v_cmp_ne_i32 <OPS32>
+//      v_cmp_ne_i64 <OPS64>
+//      v_cmp_ne_u16 <OPS16>
+//      v_cmp_ne_u32 <OPS32>
+//      v_cmp_ne_u64 <OPS64>
+//      v_cmp_neq_f16 <OPS16>
+//      v_cmp_neq_f32 <OPS32>
+//      v_cmp_neq_f64 <OPS64>
+//      v_cmp_nge_f16 <OPS16>
+//      v_cmp_nge_f32 <OPS32>
+//      v_cmp_nge_f64 <OPS64>
+//      v_cmp_ngt_f16 <OPS16>
+//      v_cmp_ngt_f32 <OPS32>
+//      v_cmp_ngt_f64 <OPS64>
+//      v_cmp_nle_f16 <OPS16>
+//      v_cmp_nle_f32 <OPS32>
+//      v_cmp_nle_f64 <OPS64>
+//      v_cmp_nlg_f16 <OPS16>
+//      v_cmp_nlg_f32 <OPS32>
+//      v_cmp_nlg_f64 <OPS64>
+//      v_cmp_nlt_f16 <OPS16>
+//      v_cmp_nlt_f32 <OPS32>
+//      v_cmp_nlt_f64 <OPS64>
+//      v_cmp_o_f16 <OPS16>
+//      v_cmp_o_f32 <OPS32>
+//      v_cmp_o_f64 <OPS64>
+//      v_cmp_u_f16 <OPS16>
+//      v_cmp_u_f32 <OPS32>
+//      v_cmp_u_f64 <OPS64>
+//
+//  <VCC>=
+//      vcc
+//      vcc_lo
+//
+//  <VGPR16>=
+//      v2.l
+//      v2.h
+//      v127.l
+//      v127.h
+//
+//  <VGPR32>=
+//      v2
+//      v255
+//
+//  <VGPR64>=
+//      v[2:3]
+//      v[254:255]
+//
+//  <SRC16>=
+//      -1
+//      0.5
+//      0x3800
+//      0xfe0b
+//      exec_hi
+//      exec_lo
+//      m0
+//      null
+//      s1
+//      s105
+//      src_scc
+//      ttmp15
+//      v1.h
+//      v1.l
+//      v127.h
+//      v127.l
+//      vcc_hi
+//      vcc_lo
+//
+//  <SRC32>=
+//      -1
+//      0.5
+//      0xaf123456
+//      exec_hi
+//      exec_lo
+//      m0
+//      null
+//      s1
+//      s105
+//      src_scc
+//      ttmp15
+//      v1
+//      v255
+//      vcc_hi
+//      vcc_lo
+//
+//  <SRC64>=
+//      -1
+//      0.5
+//      0xaf123456
+//      exec
+//      null
+//      s[104:105]
+//      s[2:3]
+//      src_scc
+//      ttmp[14:15]
+//      v[1:2]
+//      v[254:255]
+//      vcc
+//
+//  <OPS16>=
+//      <VCC>, <SRC16>, v2.l
+//      <VCC>, v1.l, <VGPR16>
+//
+//  <OPS32>=
+//      <VCC>, <SRC32>, v2
+//      <VCC>, v1, <VGPR32>
+//
+//  <OPS64>=
+//      <VCC>, <SRC64>, v[2:3]
+//      <VCC>, v[1:2], <VGPR64>
 
-v_cmp_class_f16 vcc_lo, exec_hi, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, exec_hi, v2.l ; encoding: [0x7f,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, -1, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, -1, v2.l       ; encoding: [0xc1,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc_lo, null, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, null, v2.l  ; encoding: [0x7c,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, 0.5, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, 0.5, v2.l      ; encoding: [0xf0,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc_lo, -1, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, -1, v2.l    ; encoding: [0xc1,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, 0x3800, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, 0.5, v2.l      ; encoding: [0xf0,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc_lo, 0.5, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, 0.5, v2.l   ; encoding: [0xf0,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, 0xfe0b, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, 0xfe0b, v2.l   ; encoding: [0xff,0x04,0xfa,0x7c,0x0b,0xfe,0x00,0x00]
 
-v_cmp_class_f16 vcc_lo, src_scc, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, src_scc, v2.l ; encoding: [0xfd,0x04,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, exec_hi, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, exec_hi, v2.l  ; encoding: [0x7f,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc_lo, 0xfe0b, v127.l
-// W32: v_cmp_class_f16_e32 vcc_lo, 0xfe0b, v127.l ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+v_cmp_class_f16 vcc, exec_lo, v2.l
+// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, exec_lo, v2.l  ; encoding: [0x7e,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, v1.l, v2.l
+v_cmp_class_f16 vcc, m0, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, v1.l, v2.l     ; encoding: [0x01,0x05,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, m0, v2.l       ; encoding: [0x7d,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, v127.l, v2.l
+v_cmp_class_f16 vcc, null, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, v127.l, v2.l   ; encoding: [0x7f,0x05,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, null, v2.l     ; encoding: [0x7c,0x04,0xfa,0x7c]
 
 v_cmp_class_f16 vcc, s1, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
@@ -84,273 +217,273 @@ v_cmp_class_f16 vcc, s105, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
 // W64: v_cmp_class_f16_e32 vcc, s105, v2.l     ; encoding: [0x69,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, vcc_lo, v2.l
-// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, vcc_lo, v2.l   ; encoding: [0x6a,0x04,0xfa,0x7c]
-
-v_cmp_class_f16 vcc, vcc_hi, v2.l
+v_cmp_class_f16 vcc, src_scc, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, vcc_hi, v2.l   ; encoding: [0x6b,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, src_scc, v2.l  ; encoding: [0xfd,0x04,0xfa,0x7c]
 
 v_cmp_class_f16 vcc, ttmp15, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
 // W64: v_cmp_class_f16_e32 vcc, ttmp15, v2.l   ; encoding: [0x7b,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, m0, v2.l
+v_cmp_class_f16 vcc, v1.h, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, m0, v2.l       ; encoding: [0x7d,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v1.h, v2.l     ; encoding: [0x81,0x05,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, exec_lo, v2.l
+v_cmp_class_f16 vcc, v1.l, v127.h
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, exec_lo, v2.l  ; encoding: [0x7e,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v1.l, v127.h   ; encoding: [0x01,0xff,0xfb,0x7c]
 
-v_cmp_class_f16 vcc, exec_hi, v2.l
+v_cmp_class_f16 vcc, v1.l, v127.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, exec_hi, v2.l  ; encoding: [0x7f,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v1.l, v127.l   ; encoding: [0x01,0xff,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, null, v2.l
+v_cmp_class_f16 vcc, v1.l, v2.h
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, null, v2.l     ; encoding: [0x7c,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v1.l, v2.h     ; encoding: [0x01,0x05,0xfb,0x7c]
 
-v_cmp_class_f16 vcc, -1, v2.l
+v_cmp_class_f16 vcc, v1.l, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, -1, v2.l       ; encoding: [0xc1,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v1.l, v2.l     ; encoding: [0x01,0x05,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, 0.5, v2.l
+v_cmp_class_f16 vcc, v127.h, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, 0.5, v2.l      ; encoding: [0xf0,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v127.h, v2.l   ; encoding: [0xff,0x05,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, src_scc, v2.l
+v_cmp_class_f16 vcc, v127.l, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, src_scc, v2.l  ; encoding: [0xfd,0x04,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, v127.l, v2.l   ; encoding: [0x7f,0x05,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, 0xfe0b, v127.l
+v_cmp_class_f16 vcc, vcc_hi, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, 0xfe0b, v127.l ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00]
-
-v_cmp_class_f16 vcc_lo, v1.h, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, v1.h, v2.l  ; encoding: [0x81,0x05,0xfa,0x7c]
-// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
+// W64: v_cmp_class_f16_e32 vcc, vcc_hi, v2.l   ; encoding: [0x6b,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc, v1.h, v2.l
+v_cmp_class_f16 vcc, vcc_lo, v2.l
 // W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, v1.h, v2.l     ; encoding: [0x81,0x05,0xfa,0x7c]
+// W64: v_cmp_class_f16_e32 vcc, vcc_lo, v2.l   ; encoding: [0x6a,0x04,0xfa,0x7c]
 
-v_cmp_class_f16 vcc_lo, v127.h, v2.l
-// W32: v_cmp_class_f16_e32 vcc_lo, v127.h, v2.l ; encoding: [0xff,0x05,0xfa,0x7c]
+v_cmp_class_f16 vcc_lo, -1, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, -1, v2.l    ; encoding: [0xc1,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f16 vcc, v127.h, v2.l
-// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, v127.h, v2.l   ; encoding: [0xff,0x05,0xfa,0x7c]
+v_cmp_class_f16 vcc_lo, 0.5, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, 0.5, v2.l   ; encoding: [0xf0,0x04,0xfa,0x7c]
+// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f16 vcc_lo, src_scc, v2.h
-// W32: v_cmp_class_f16_e32 vcc_lo, src_scc, v2.h ; encoding: [0xfd,0x04,0xfb,0x7c]
+v_cmp_class_f16 vcc_lo, 0x3800, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, 0.5, v2.l   ; encoding: [0xf0,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f16 vcc, src_scc, v2.h
-// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, src_scc, v2.h  ; encoding: [0xfd,0x04,0xfb,0x7c]
+v_cmp_class_f16 vcc_lo, 0xfe0b, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, 0xfe0b, v2.l ; encoding: [0xff,0x04,0xfa,0x7c,0x0b,0xfe,0x00,0x00]
+// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f16 vcc_lo, 0xfe0b, v127.h
-// W32: v_cmp_class_f16_e32 vcc_lo, 0xfe0b, v127.h ; encoding: [0xff,0xfe,0xfb,0x7c,0x0b,0xfe,0x00,0x00]
+v_cmp_class_f16 vcc_lo, exec_hi, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, exec_hi, v2.l ; encoding: [0x7f,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f16 vcc, 0xfe0b, v127.h
-// W32-ERR: :[[@LINE-1]]:1: error: operands are not valid for this GPU or mode
-// W64: v_cmp_class_f16_e32 vcc, 0xfe0b, v127.h ; encoding: [0xff,0xfe,0xfb,0x7c,0x0b,0xfe,0x00,0x00]
+v_cmp_class_f16 vcc_lo, exec_lo, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, exec_lo, v2.l ; encoding: [0x7e,0x04,0xfa,0x7c]
+// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, v1, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, v1, v2      ; encoding: [0x01,0x05,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, m0, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, m0, v2.l    ; encoding: [0x7d,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, v255, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, v255, v2    ; encoding: [0xff,0x05,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, null, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, null, v2.l  ; encoding: [0x7c,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, s1, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, s1, v2      ; encoding: [0x01,0x04,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, s1, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, s1, v2.l    ; encoding: [0x01,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, s105, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, s105, v2    ; encoding: [0x69,0x04,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, s105, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, s105, v2.l  ; encoding: [0x69,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, vcc_lo, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, vcc_lo, v2  ; encoding: [0x6a,0x04,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, src_scc, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, src_scc, v2.l ; encoding: [0xfd,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, vcc_hi, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, vcc_hi, v2  ; encoding: [0x6b,0x04,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, ttmp15, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, ttmp15, v2.l ; encoding: [0x7b,0x04,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode
 
-v_cmp_class_f32 vcc_lo, ttmp15, v2
-// W32: v_cmp_class_f32_e32 vcc_lo, ttmp15, v2  ; encoding: [0x7b,0x04,0xfc,0x7c]
+v_cmp_class_f16 vcc_lo, v1.h, v2.l
+// W32: v_cmp_class_f16_e32 vcc_lo, v1.h, v2.l  ; encoding: [0x81,0x05,0xfa,0x7c]
 // W64-ERR: :[[@LINE-2]]:1: error...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/208265


More information about the llvm-commits mailing list