[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