[llvm] [Utils][update_llc_test_checks] Support generating asm tests from templates. (PR #168946)

via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 20 13:05:42 PST 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Ivan Kosarev (kosarev)

<details>
<summary>Changes</summary>

Reduces the pain of manual editing tests applying the same
changes over multiple instructions and keeping them consistent.

---

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


2 Files Affected:

- (modified) llvm/test/MC/AMDGPU/gfx11_asm_vop1.s (+472-150) 
- (modified) llvm/utils/update_mc_test_checks.py (+95-9) 


``````````diff
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop1.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
index f1438532d7c5e..5b4689b2954df 100644
--- a/llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
@@ -1,8 +1,195 @@
-// 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: --version 5
 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+real-true16,+wavefrontsize32 -show-encoding %s | FileCheck --check-prefix=GFX11 %s
 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+real-true16,+wavefrontsize64 -show-encoding %s | FileCheck --check-prefix=GFX11 %s
 
-v_bfrev_b32_e32 v5, v1
+//  INSTS=
+//      v_bfrev_b32 OPS32
+//      v_ceil_f16 OPS16
+//      v_ceil_f32 OPS32
+//      v_ceil_f64 OPS64
+//      v_cls_i32 OPS32
+//      v_clz_i32_u32 OPS32
+//      v_cos_f16 OPS16
+//      v_cos_f32 OPS32
+//      v_ctz_i32_b32 OPS32
+//      v_cvt_f16_f32 v5.l, SRC32
+//      v_cvt_f16_f32 v127.h, 0xaf123456
+//      v_cvt_f16_f32 v127.l, 0.5
+//      v_cvt_f16_i16 OPS16
+//      v_cvt_f16_u16 OPS16
+//      v_cvt_f32_f16 OPS_32_16
+//      v_cvt_f32_f64 OPS_32_64
+//      v_cvt_f32_i32 OPS32
+//      v_cvt_f32_u32 OPS32
+//      v_cvt_f32_ubyte0 OPS32
+//      v_cvt_f32_ubyte1 OPS32
+//      v_cvt_f32_ubyte2 OPS32
+//      v_cvt_f32_ubyte3 OPS32
+//      v_cvt_f64_f32 OPS_64_32
+//      v_cvt_f64_i32 OPS_64_32
+//      v_cvt_f64_u32 OPS_64_32
+//      v_cvt_floor_i32_f32 OPS32
+//      v_cvt_flr_i32_f32 OPS32
+//      v_cvt_i16_f16 OPS16
+//      v_cvt_i32_f32 OPS32
+//      v_cvt_i32_f64 OPS_32_64
+//      v_cvt_i32_i16 OPS_32_16
+//      v_cvt_nearest_i32_f32 OPS32
+//      v_cvt_norm_i16_f16 OPS16
+//      v_cvt_norm_u16_f16 OPS16
+//      v_cvt_off_f32_i4 v5, SRC32
+//      v_cvt_off_f32_i4 v255, 0x4f
+//      v_cvt_rpi_i32_f32 OPS32
+//      v_cvt_u16_f16 OPS16
+//      v_cvt_u32_f32 OPS32
+//      v_cvt_u32_f64 OPS_32_64
+//      v_cvt_u32_u16 OPS_32_16
+//      v_exp_f16 OPS16
+//      v_exp_f32 OPS32
+//      v_ffbh_i32 OPS32
+//      v_ffbh_u32 OPS32
+//      v_ffbl_b32 OPS32
+//      v_floor_f16 OPS16
+//      v_floor_f32 OPS32
+//      v_floor_f64 OPS64
+//      v_fract_f16 OPS16
+//      v_fract_f32 OPS32
+//      v_fract_f64 OPS64
+//      v_frexp_exp_i16_f16 OPS16
+//      v_frexp_exp_i32_f32 OPS32
+//      v_frexp_exp_i32_f64 OPS_32_64
+//      v_frexp_mant_f16 OPS16
+//      v_frexp_mant_f32 OPS32
+//      v_frexp_mant_f64 OPS64
+//      v_log_f16 OPS16
+//      v_log_f32 OPS32
+//      v_mov_b16_e32 OPS16
+//      v_mov_b16_e64 OPS16
+//      v_mov_b32 OPS32
+//      v_movreld_b32 OPS32
+//      v_movrels_b32 v5, v1
+//      v_movrels_b32 v255, v255
+//      v_movrelsd_2_b32 v5, v1
+//      v_movrelsd_2_b32 v255, v255
+//      v_movrelsd_b32 v5, v1
+//      v_movrelsd_b32 v255, v255
+//      v_nop
+//      v_not_b16 OPS16
+//      v_not_b32 OPS32
+//      v_permlane64_b32 v5, v1
+//      v_permlane64_b32 v255, v255
+//      v_pipeflush
+//      v_rcp_f16 OPS16
+//      v_rcp_f32 OPS32
+//      v_rcp_f64 OPS64
+//      v_rcp_iflag_f32 OPS32
+//      v_readfirstlane_b32 s5, v1
+//      v_readfirstlane_b32 s105, v1
+//      v_readfirstlane_b32 vcc_lo, v1
+//      v_readfirstlane_b32 vcc_hi, v1
+//      v_readfirstlane_b32 ttmp15, v1
+//      v_readfirstlane_b32 null, v255
+//      v_rndne_f16 OPS16
+//      v_rndne_f32 OPS32
+//      v_rndne_f64 OPS64
+//      v_rsq_f16 OPS16
+//      v_rsq_f32 OPS32
+//      v_rsq_f64 OPS64
+//      v_sat_pk_u8_i16 v5.l, SRC32
+//      v_sat_pk_u8_i16 v127.l, 0xfe0b
+//      v_sat_pk_u8_i16 v127.l, 0.5
+//      v_sat_pk_u8_i16 v5.h, src_scc
+//      v_sat_pk_u8_i16 v127.h, 0xfe0b
+//      v_sin_f16 OPS16
+//      v_sin_f32 OPS32
+//      v_sqrt_f16 OPS16
+//      v_sqrt_f32 OPS32
+//      v_sqrt_f64 OPS64
+//      v_swap_b16 v5.l, v1.h
+//      v_swap_b16 v5.h, v1.l
+//      v_swap_b16 v127.l, v127.l
+//      v_swap_b32 v5, v1
+//      v_swap_b32 v255, v255
+//      v_swaprel_b32 v5, v1
+//      v_swaprel_b32 v255, v255
+//      v_trunc_f16 OPS16
+//      v_trunc_f32 OPS32
+//      v_trunc_f64 OPS64
+//
+//  SRC16=
+//      v1.l
+//      v127.l
+//      v1.h
+//      v127.h
+//      s1
+//      s105
+//      vcc_lo
+//      vcc_hi
+//      ttmp15
+//      m0
+//      exec_lo
+//      exec_hi
+//      null
+//      -1
+//      0.5
+//      src_scc
+//
+//  OPS16=
+//      v5.l, SRC16
+//      v5.l, 0xfe0b
+//      v5.h, src_scc
+//      v127.h, 0xfe0b
+//
+//  SRC32=
+//      v1
+//      v255
+//      s1
+//      s105
+//      vcc_lo
+//      vcc_hi
+//      ttmp15
+//      m0
+//      exec_lo
+//      exec_hi
+//      null
+//      -1
+//      0.5
+//      src_scc
+//
+//  OPS32=
+//      v5, SRC32
+//      v255, 0xaf123456
+//
+//  SRC64=
+//      v[1:2]
+//      v[254:255]
+//      s[2:3]
+//      s[104:105]
+//      vcc
+//      ttmp[14:15]
+//      exec
+//      null
+//      -1
+//      0.5
+//      src_scc
+//
+//  OPS64=
+//      v[5:6], SRC64
+//      v[254:255], 0xaf123456
+//
+//  OPS_32_16=
+//      v5, SRC16
+//      v255, 0xfe0b
+//
+//  OPS_32_64=
+//      v5, SRC64
+//      v255, 0xaf123456
+//
+//  OPS_64_32=
+//      v[5:6], SRC32
+//      v[254:255], 0xaf123456
+
+v_bfrev_b32 v5, v1
 // GFX11: v_bfrev_b32_e32 v5, v1                  ; encoding: [0x01,0x71,0x0a,0x7e]
 
 v_bfrev_b32 v5, v255
@@ -89,8 +276,14 @@ v_ceil_f16 v5.l, null
 v_ceil_f16 v5.l, -1
 // GFX11: v_ceil_f16_e32 v5.l, -1                 ; encoding: [0xc1,0xb8,0x0a,0x7e]
 
-v_ceil_f16 v127.l, 0.5
-// GFX11: v_ceil_f16_e32 v127.l, 0.5              ; encoding: [0xf0,0xb8,0xfe,0x7e]
+v_ceil_f16 v5.l, 0.5
+// GFX11: v_ceil_f16_e32 v5.l, 0.5                ; encoding: [0xf0,0xb8,0x0a,0x7e]
+
+v_ceil_f16 v5.l, src_scc
+// GFX11: v_ceil_f16_e32 v5.l, src_scc            ; encoding: [0xfd,0xb8,0x0a,0x7e]
+
+v_ceil_f16 v5.l, 0xfe0b
+// GFX11: v_ceil_f16_e32 v5.l, 0xfe0b             ; encoding: [0xff,0xb8,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_ceil_f16 v5.h, src_scc
 // GFX11: v_ceil_f16_e32 v5.h, src_scc            ; encoding: [0xfd,0xb8,0x0a,0x7f]
@@ -275,6 +468,12 @@ v_cos_f16 v5.l, v1.l
 v_cos_f16 v5.l, v127.l
 // GFX11: v_cos_f16_e32 v5.l, v127.l              ; encoding: [0x7f,0xc3,0x0a,0x7e]
 
+v_cos_f16 v5.l, v1.h
+// GFX11: v_cos_f16_e32 v5.l, v1.h                ; encoding: [0x81,0xc3,0x0a,0x7e]
+
+v_cos_f16 v5.l, v127.h
+// GFX11: v_cos_f16_e32 v5.l, v127.h              ; encoding: [0xff,0xc3,0x0a,0x7e]
+
 v_cos_f16 v5.l, s1
 // GFX11: v_cos_f16_e32 v5.l, s1                  ; encoding: [0x01,0xc2,0x0a,0x7e]
 
@@ -311,17 +510,8 @@ v_cos_f16 v5.l, 0.5
 v_cos_f16 v5.l, src_scc
 // GFX11: v_cos_f16_e32 v5.l, src_scc             ; encoding: [0xfd,0xc2,0x0a,0x7e]
 
-v_cos_f16 v127.l, 0xfe0b
-// GFX11: v_cos_f16_e32 v127.l, 0xfe0b            ; encoding: [0xff,0xc2,0xfe,0x7e,0x0b,0xfe,0x00,0x00]
-
-v_cos_f16 v5.l, v1.h
-// GFX11: v_cos_f16_e32 v5.l, v1.h                ; encoding: [0x81,0xc3,0x0a,0x7e]
-
-v_cos_f16 v5.l, v127.h
-// GFX11: v_cos_f16_e32 v5.l, v127.h              ; encoding: [0xff,0xc3,0x0a,0x7e]
-
-v_cos_f16 v127.l, 0.5
-// GFX11: v_cos_f16_e32 v127.l, 0.5               ; encoding: [0xf0,0xc2,0xfe,0x7e]
+v_cos_f16 v5.l, 0xfe0b
+// GFX11: v_cos_f16_e32 v5.l, 0xfe0b              ; encoding: [0xff,0xc2,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cos_f16 v5.h, src_scc
 // GFX11: v_cos_f16_e32 v5.h, src_scc             ; encoding: [0xfd,0xc2,0x0a,0x7f]
@@ -458,8 +648,8 @@ v_cvt_f16_f32 v5.l, -1
 v_cvt_f16_f32 v5.l, 0.5
 // GFX11: v_cvt_f16_f32_e32 v5.l, 0.5             ; encoding: [0xf0,0x14,0x0a,0x7e]
 
-v_cvt_f16_f32 v5.h, src_scc
-// GFX11: v_cvt_f16_f32_e32 v5.h, src_scc         ; encoding: [0xfd,0x14,0x0a,0x7f]
+v_cvt_f16_f32 v5.l, src_scc
+// GFX11: v_cvt_f16_f32_e32 v5.l, src_scc         ; encoding: [0xfd,0x14,0x0a,0x7e]
 
 v_cvt_f16_f32 v127.h, 0xaf123456
 // GFX11: v_cvt_f16_f32_e32 v127.h, 0xaf123456    ; encoding: [0xff,0x14,0xfe,0x7f,0x56,0x34,0x12,0xaf]
@@ -509,12 +699,15 @@ v_cvt_f16_i16 v5.l, null
 v_cvt_f16_i16 v5.l, -1
 // GFX11: v_cvt_f16_i16_e32 v5.l, -1              ; encoding: [0xc1,0xa2,0x0a,0x7e]
 
-v_cvt_f16_i16 v127.l, 0.5
-// GFX11: v_cvt_f16_i16_e32 v127.l, 0.5           ; encoding: [0xf0,0xa2,0xfe,0x7e]
-
 v_cvt_f16_i16 v5.l, 0.5
 // GFX11: v_cvt_f16_i16_e32 v5.l, 0.5             ; encoding: [0xf0,0xa2,0x0a,0x7e]
 
+v_cvt_f16_i16 v5.l, src_scc
+// GFX11: v_cvt_f16_i16_e32 v5.l, src_scc         ; encoding: [0xfd,0xa2,0x0a,0x7e]
+
+v_cvt_f16_i16 v5.l, 0xfe0b
+// GFX11: v_cvt_f16_i16_e32 v5.l, 0xfe0b          ; encoding: [0xff,0xa2,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
+
 v_cvt_f16_i16 v5.h, src_scc
 // GFX11: v_cvt_f16_i16_e32 v5.h, src_scc         ; encoding: [0xfd,0xa2,0x0a,0x7f]
 
@@ -563,11 +756,14 @@ v_cvt_f16_u16 v5.l, null
 v_cvt_f16_u16 v5.l, -1
 // GFX11: v_cvt_f16_u16_e32 v5.l, -1              ; encoding: [0xc1,0xa0,0x0a,0x7e]
 
-v_cvt_f16_u16 v127.l, 0.5
-// GFX11: v_cvt_f16_u16_e32 v127.l, 0.5           ; encoding: [0xf0,0xa0,0xfe,0x7e]
+v_cvt_f16_u16 v5.l, 0.5
+// GFX11: v_cvt_f16_u16_e32 v5.l, 0.5             ; encoding: [0xf0,0xa0,0x0a,0x7e]
+
+v_cvt_f16_u16 v5.l, src_scc
+// GFX11: v_cvt_f16_u16_e32 v5.l, src_scc         ; encoding: [0xfd,0xa0,0x0a,0x7e]
 
-v_cvt_f16_u16 v5, 0.5
-// GFX11: v_cvt_f16_u16_e32 v5, 0.5               ; encoding: [0xf0,0xa0,0x0a,0x7e]
+v_cvt_f16_u16 v5.l, 0xfe0b
+// GFX11: v_cvt_f16_u16_e32 v5.l, 0xfe0b          ; encoding: [0xff,0xa0,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cvt_f16_u16 v5.h, src_scc
 // GFX11: v_cvt_f16_u16_e32 v5.h, src_scc         ; encoding: [0xfd,0xa0,0x0a,0x7f]
@@ -1199,8 +1395,14 @@ v_cvt_i16_f16 v5.l, null
 v_cvt_i16_f16 v5.l, -1
 // GFX11: v_cvt_i16_f16_e32 v5.l, -1              ; encoding: [0xc1,0xa6,0x0a,0x7e]
 
-v_cvt_i16_f16 v127.l, 0.5
-// GFX11: v_cvt_i16_f16_e32 v127.l, 0.5           ; encoding: [0xf0,0xa6,0xfe,0x7e]
+v_cvt_i16_f16 v5.l, 0.5
+// GFX11: v_cvt_i16_f16_e32 v5.l, 0.5             ; encoding: [0xf0,0xa6,0x0a,0x7e]
+
+v_cvt_i16_f16 v5.l, src_scc
+// GFX11: v_cvt_i16_f16_e32 v5.l, src_scc         ; encoding: [0xfd,0xa6,0x0a,0x7e]
+
+v_cvt_i16_f16 v5.l, 0xfe0b
+// GFX11: v_cvt_i16_f16_e32 v5.l, 0xfe0b          ; encoding: [0xff,0xa6,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cvt_i16_f16 v5.h, src_scc
 // GFX11: v_cvt_i16_f16_e32 v5.h, src_scc         ; encoding: [0xfd,0xa6,0x0a,0x7f]
@@ -1295,6 +1497,12 @@ v_cvt_i32_i16 v5, v1.l
 v_cvt_i32_i16 v5, v127.l
 // GFX11: v_cvt_i32_i16_e32 v5, v127.l            ; encoding: [0x7f,0xd5,0x0a,0x7e]
 
+v_cvt_i32_i16 v5, v1.h
+// GFX11: v_cvt_i32_i16_e32 v5, v1.h              ; encoding: [0x81,0xd5,0x0a,0x7e]
+
+v_cvt_i32_i16 v5, v127.h
+// GFX11: v_cvt_i32_i16_e32 v5, v127.h            ; encoding: [0xff,0xd5,0x0a,0x7e]
+
 v_cvt_i32_i16 v5, s1
 // GFX11: v_cvt_i32_i16_e32 v5, s1                ; encoding: [0x01,0xd4,0x0a,0x7e]
 
@@ -1334,12 +1542,6 @@ v_cvt_i32_i16 v5, src_scc
 v_cvt_i32_i16 v255, 0xfe0b
 // GFX11: v_cvt_i32_i16_e32 v255, 0xfe0b          ; encoding: [0xff,0xd4,0xfe,0x7f,0x0b,0xfe,0x00,0x00]
 
-v_cvt_i32_i16 v5, v1.h
-// GFX11: v_cvt_i32_i16_e32 v5, v1.h              ; encoding: [0x81,0xd5,0x0a,0x7e]
-
-v_cvt_i32_i16 v5, v127.h
-// GFX11: v_cvt_i32_i16_e32 v5, v127.h            ; encoding: [0xff,0xd5,0x0a,0x7e]
-
 v_cvt_nearest_i32_f32 v5, v1
 // GFX11: v_cvt_nearest_i32_f32_e32 v5, v1        ; encoding: [0x01,0x19,0x0a,0x7e]
 
@@ -1427,8 +1629,14 @@ v_cvt_norm_i16_f16 v5.l, null
 v_cvt_norm_i16_f16 v5.l, -1
 // GFX11: v_cvt_norm_i16_f16_e32 v5.l, -1         ; encoding: [0xc1,0xc6,0x0a,0x7e]
 
-v_cvt_norm_i16_f16 v127.l, 0.5
-// GFX11: v_cvt_norm_i16_f16_e32 v127.l, 0.5      ; encoding: [0xf0,0xc6,0xfe,0x7e]
+v_cvt_norm_i16_f16 v5.l, 0.5
+// GFX11: v_cvt_norm_i16_f16_e32 v5.l, 0.5        ; encoding: [0xf0,0xc6,0x0a,0x7e]
+
+v_cvt_norm_i16_f16 v5.l, src_scc
+// GFX11: v_cvt_norm_i16_f16_e32 v5.l, src_scc    ; encoding: [0xfd,0xc6,0x0a,0x7e]
+
+v_cvt_norm_i16_f16 v5.l, 0xfe0b
+// GFX11: v_cvt_norm_i16_f16_e32 v5.l, 0xfe0b     ; encoding: [0xff,0xc6,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cvt_norm_i16_f16 v5.h, src_scc
 // GFX11: v_cvt_norm_i16_f16_e32 v5.h, src_scc    ; encoding: [0xfd,0xc6,0x0a,0x7f]
@@ -1478,8 +1686,14 @@ v_cvt_norm_u16_f16 v5.l, null
 v_cvt_norm_u16_f16 v5.l, -1
 // GFX11: v_cvt_norm_u16_f16_e32 v5.l, -1         ; encoding: [0xc1,0xc8,0x0a,0x7e]
 
-v_cvt_norm_u16_f16 v127.l, 0.5
-// GFX11: v_cvt_norm_u16_f16_e32 v127.l, 0.5      ; encoding: [0xf0,0xc8,0xfe,0x7e]
+v_cvt_norm_u16_f16 v5.l, 0.5
+// GFX11: v_cvt_norm_u16_f16_e32 v5.l, 0.5        ; encoding: [0xf0,0xc8,0x0a,0x7e]
+
+v_cvt_norm_u16_f16 v5.l, src_scc
+// GFX11: v_cvt_norm_u16_f16_e32 v5.l, src_scc    ; encoding: [0xfd,0xc8,0x0a,0x7e]
+
+v_cvt_norm_u16_f16 v5.l, 0xfe0b
+// GFX11: v_cvt_norm_u16_f16_e32 v5.l, 0xfe0b     ; encoding: [0xff,0xc8,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cvt_norm_u16_f16 v5.h, src_scc
 // GFX11: v_cvt_norm_u16_f16_e32 v5.h, src_scc    ; encoding: [0xfd,0xc8,0x0a,0x7f]
@@ -1619,8 +1833,14 @@ v_cvt_u16_f16 v5.l, null
 v_cvt_u16_f16 v5.l, -1
 // GFX11: v_cvt_u16_f16_e32 v5.l, -1              ; encoding: [0xc1,0xa4,0x0a,0x7e]
 
-v_cvt_u16_f16 v127.l, 0.5
-// GFX11: v_cvt_u16_f16_e32 v127.l, 0.5           ; encoding: [0xf0,0xa4,0xfe,0x7e]
+v_cvt_u16_f16 v5.l, 0.5
+// GFX11: v_cvt_u16_f16_e32 v5.l, 0.5             ; encoding: [0xf0,0xa4,0x0a,0x7e]
+
+v_cvt_u16_f16 v5.l, src_scc
+// GFX11: v_cvt_u16_f16_e32 v5.l, src_scc         ; encoding: [0xfd,0xa4,0x0a,0x7e]
+
+v_cvt_u16_f16 v5.l, 0xfe0b
+// GFX11: v_cvt_u16_f16_e32 v5.l, 0xfe0b          ; encoding: [0xff,0xa4,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_cvt_u16_f16 v5.h, src_scc
 // GFX11: v_cvt_u16_f16_e32 v5.h, src_scc         ; encoding: [0xfd,0xa4,0x0a,0x7f]
@@ -1715,6 +1935,12 @@ v_cvt_u32_u16 v5, v1.l
 v_cvt_u32_u16 v5, v127.l
 // GFX11: v_cvt_u32_u16_e32 v5, v127.l            ; encoding: [0x7f,0xd7,0x0a,0x7e]
 
+v_cvt_u32_u16 v5, v1.h
+// GFX11: v_cvt_u32_u16_e32 v5, v1.h              ; encoding: [0x81,0xd7,0x0a,0x7e]
+
+v_cvt_u32_u16 v5, v127.h
+// GFX11: v_cvt_u32_u16_e32 v5, v127.h            ; encoding: [0xff,0xd7,0x0a,0x7e]
+
 v_cvt_u32_u16 v5, s1
 // GFX11: v_cvt_u32_u16_e32 v5, s1                ; encoding: [0x01,0xd6,0x0a,0x7e]
 
@@ -1754,12 +1980,6 @@ v_cvt_u32_u16 v5, src_scc
 v_cvt_u32_u16 v255, 0xfe0b
 // GFX11: v_cvt_u32_u16_e32 v255, 0xfe0b          ; encoding: [0xff,0xd6,0xfe,0x7f,0x0b,0xfe,0x00,0x00]
 
-v_cvt_u32_u16 v5, v1.h
-// GFX11: v_cvt_u32_u16_e32 v5, v1.h              ; encoding: [0x81,0xd7,0x0a,0x7e]
-
-v_cvt_u32_u16 v5, v127.h
-// GFX11: v_cvt_u32_u16_e32 v5, v127.h            ; encoding: [0xff,0xd7,0x0a,0x7e]
-
 v_exp_f16 v5.l, v1.l
 // GFX11: v_exp_f16_e32 v5.l, v1.l                ; encoding: [0x01,0xb1,0x0a,0x7e]
 
@@ -1802,8 +2022,14 @@ v_exp_f16 v5.l, null
 v_exp_f16 v5.l, -1
 // GFX11: v_exp_f16_e32 v5.l, -1                  ; encoding: [0xc1,0xb0,0x0a,0x7e]
 
-v_exp_f16 v127.l, 0.5
-// GFX11: v_exp_f16_e32 v127.l, 0.5               ; encoding: [0xf0,0xb0,0xfe,0x7e]
+v_exp_f16 v5.l, 0.5
+// GFX11: v_exp_f16_e32 v5.l, 0.5                 ; encoding: [0xf0,0xb0,0x0a,0x7e]
+
+v_exp_f16 v5.l, src_scc
+// GFX11: v_exp_f16_e32 v5.l, src_scc             ; encoding: [0xfd,0xb0,0x0a,0x7e]
+
+v_exp_f16 v5.l, 0xfe0b
+// GFX11: v_exp_f16_e32 v5.l, 0xfe0b              ; encoding: [0xff,0xb0,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_exp_f16 v5.h, src_scc
 // GFX11: v_exp_f16_e32 v5.h, src_scc             ; encoding: [0xfd,0xb0,0x0a,0x7f]
@@ -2033,8 +2259,14 @@ v_floor_f16 v5.l, null
 v_floor_f16 v5.l, -1
 // GFX11: v_floor_f16_e32 v5.l, -1                ; encoding: [0xc1,0xb6,0x0a,0x7e]
 
-v_floor_f16 v127.l, 0.5
-// GFX11: v_floor_f16_e32 v127.l, 0.5             ; encoding: [0xf0,0xb6,0xfe,0x7e]
+v_floor_f16 v5.l, 0.5
+// GFX11: v_floor_f16_e32 v5.l, 0.5               ; encoding: [0xf0,0xb6,0x0a,0x7e]
+
+v_floor_f16 v5.l, src_scc
+// GFX11: v_floor_f16_e32 v5.l, src_scc           ; encoding: [0xfd,0xb6,0x0a,0x7e]
+
+v_floor_f16 v5.l, 0xfe0b
+// GFX11: v_floor_f16_e32 v5.l, 0xfe0b            ; encoding: [0xff,0xb6,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_floor_f16 v5.h, src_scc
 // GFX11: v_floor_f16_e32 v5.h, src_scc           ; encoding: [0xfd,0xb6,0x0a,0x7f]
@@ -2129,6 +2361,12 @@ v_fract_f16 v5.l, v1.l
 v_fract_f16 v5.l, v127.l
 // GFX11: v_fract_f16_e32 v5.l, v127.l            ; encoding: [0x7f,0xbf,0x0a,0x7e]
 
+v_fract_f16 v5.l, v1.h
+// GFX11: v_fract_f16_e32 v5.l, v1.h              ; encoding: [0x81,0xbf,0x0a,0x7e]
+
+v_fract_f16 v5.l, v127.h
+// GFX11: v_fract_f16_e32 v5.l, v127.h            ; encoding: [0xff,0xbf,0x0a,0x7e]
+
 v_fract_f16 v5.l, s1
 // GFX11: v_fract_f16_e32 v5.l, s1                ; encoding: [0x01,0xbe,0x0a,0x7e]
 
@@ -2165,17 +2403,8 @@ v_fract_f16 v5.l, 0.5
 v_fract_f16 v5.l, src_scc
 // GFX11: v_fract_f16_e32 v5.l, src_scc           ; encoding: [0xfd,0xbe,0x0a,0x7e]
 
-v_fract_f16 v127.l, 0xfe0b
-// GFX11: v_fract_f16_e32 v127.l, 0xfe0b          ; encoding: [0xff,0xbe,0xfe,0x7e,0x0b,0xfe,0x00,0x00]
-
-v_fract_f16 v5.l, v1.h
-// GFX11: v_fract_f16_e32 v5.l, v1.h              ; encoding: [0x81,0xbf,0x0a,0x7e]
-
-v_fract_f16 v5.l, v127.h
-// GFX11: v_fract_f16_e32 v5.l, v127.h            ; encoding: [0xff,0xbf,0x0a,0x7e]
-
-v_fract_f16 v127.l, 0.5
-// GFX11: v_fract_f16_e32 v127.l, 0.5             ; encoding: [0xf0,0xbe,0xfe,0x7e]
+v_fract_f16 v5.l, 0xfe0b
+// GFX11: v_fract_f16_e32 v5.l, 0xfe0b            ; encoding: [0xff,0xbe,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_fract_f16 v5.h, src_scc
 // GFX11: v_fract_f16_e32 v5.h, src_scc           ; encoding: [0xfd,0xbe,0x0a,0x7f]
@@ -2306,8 +2535,14 @@ v_frexp_exp_i16_f16 v5.l, null
 v_frexp_exp_i16_f16 v5.l, -1
 // GFX11: v_frexp_exp_i16_f16_e32 v5.l, -1        ; encoding: [0xc1,0xb4,0x0a,0x7e]
 
-v_frexp_exp_i16_f16 v127.l, 0.5
-// GFX11: v_frexp_exp_i16_f16_e32 v127.l, 0.5     ; encoding: [0xf0,0xb4,0xfe,0x7e]
+v_frexp_exp_i16_f16 v5.l, 0.5
+// GFX11: v_frexp_exp_i16_f16_e32 v5.l, 0.5       ; encoding: [0xf0,0xb4,0x0a,0x7e]
+
+v_frexp_exp_i16_f16 v5.l, src_scc
+// GFX11: v_frexp_exp_i16_f16_e32 v5.l, src_scc   ; encoding: [0xfd,0xb4,0x0a,0x7e]
+
+v_frexp_exp_i16_f16 v5.l, 0xfe0b
+// GFX11: v_frexp_exp_i16_f16_e32 v5.l, 0xfe0b    ; encoding: [0xff,0xb4,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_frexp_exp_i16_f16 v5.h, src_scc
 // GFX11: v_frexp_exp_i16_f16_e32 v5.h, src_scc   ; encoding: [0xfd,0xb4,0x0a,0x7f]
@@ -2402,6 +2637,12 @@ v_frexp_mant_f16 v5.l, v1.l
 v_frexp_mant_f16 v5.l, v127.l
 // GFX11: v_frexp_mant_f16_e32 v5.l, v127.l       ; encoding: [0x7f,0xb3,0x0a,0x7e]
 
+v_frexp_mant_f16 v5.l, v1.h
+// GFX11: v_frexp_mant_f16_e32 v5.l, v1.h         ; encoding: [0x81,0xb3,0x0a,0x7e]
+
+v_frexp_mant_f16 v5.l, v127.h
+// GFX11: v_frexp_mant_f16_e32 v5.l, v127.h       ; encoding: [0xff,0xb3,0x0a,0x7e]
+
 v_frexp_mant_f16 v5.l, s1
 // GFX11: v_frexp_mant_f16_e32 v5.l, s1           ; encoding: [0x01,0xb2,0x0a,0x7e]
 
@@ -2438,17 +2679,8 @@ v_frexp_mant_f16 v5.l, 0.5
 v_frexp_mant_f16 v5.l, src_scc
 // GFX11: v_frexp_mant_f16_e32 v5.l, src_scc      ; encoding: [0xfd,0xb2,0x0a,0x7e]
 
-v_frexp_mant_f16 v127.l, 0xfe0b
-// GFX11: v_frexp_mant_f16_e32 v127.l, 0xfe0b     ; encoding: [0xff,0xb2,0xfe,0x7e,0x0b,0xfe,0x00,0x00]
-
-v_frexp_mant_f16 v5.l, v1.h
-// GFX11: v_frexp_mant_f16_e32 v5.l, v1.h         ; encoding: [0x81,0xb3,0x0a,0x7e]
-
-v_frexp_mant_f16 v5.l, v127.h
-// GFX11: v_frexp_mant_f16_e32 v5.l, v127.h       ; encoding: [0xff,0xb3,0x0a,0x7e]
-
-v_frexp_mant_f16 v127.l, 0.5
-// GFX11: v_frexp_mant_f16_e32 v127.l, 0.5        ; encoding: [0xf0,0xb2,0xfe,0x7e]
+v_frexp_mant_f16 v5.l, 0xfe0b
+// GFX11: v_frexp_mant_f16_e32 v5.l, 0xfe0b       ; encoding: [0xff,0xb2,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_frexp_mant_f16 v5.h, src_scc
 // GFX11: v_frexp_mant_f16_e32 v5.h, src_scc      ; encoding: [0xfd,0xb2,0x0a,0x7f]
@@ -2579,8 +2811,14 @@ v_log_f16 v5.l, null
 v_log_f16 v5.l, -1
 // GFX11: v_log_f16_e32 v5.l, -1                  ; encoding: [0xc1,0xae,0x0a,0x7e]
 
-v_log_f16 v127.l, 0.5
-// GFX11: v_log_f16_e32 v127.l, 0.5               ; encoding: [0xf0,0xae,0xfe,0x7e]
+v_log_f16 v5.l, 0.5
+// GFX11: v_log_f16_e32 v5.l, 0.5                 ; encoding: [0xf0,0xae,0x0a,0x7e]
+
+v_log_f16 v5.l, src_scc
+// GFX11: v_log_f16_e32 v5.l, src_scc             ; encoding: [0xfd,0xae,0x0a,0x7e]
+
+v_log_f16 v5.l, 0xfe0b
+// GFX11: v_log_f16_e32 v5.l, 0xfe0b              ; encoding: [0xff,0xae,0x0a,0x7e,0x0b,0xfe,0x00,0x00]
 
 v_log_f16 v5.h, src_scc
 // GFX11: v_log_f16_e32 v5.h, src_scc             ; encoding: [0xfd,0xae,0x0a,0x7f]
@@ -2633,35 +2871,119 @@ v_log_f32 v5,...
[truncated]

``````````

</details>


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


More information about the llvm-commits mailing list