[llvm] [AMDGPU][True16][MC] Support VOP3 only instructions with true16 and fake16 (PR #109891)

Brox Chen via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 13:24:50 PDT 2024


================
@@ -549,49 +549,94 @@
 # GFX11: v_and_or_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf]
 0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf
 
-# GFX11: v_ashrrev_i16 v5, v1, v2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, v1.l, v2.l          ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, v1, v2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, v1.l, v2.l          ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, v1, v2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
 0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00
 
-# GFX11: v_ashrrev_i16 v5, v255, v255            ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, v255.l, v255.l      ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, v255, v255            ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, v255.l, v255.l      ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, v255, v255            ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
 0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00
 
-# GFX11: v_ashrrev_i16 v5, s1, s2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, s1, s2              ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, s1, s2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, s1, s2              ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, s1, s2                ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, s105, s105            ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, s105, s105          ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, s105, s105            ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, s105, s105          ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, s105, s105            ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, vcc_lo, ttmp15        ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, vcc_lo, ttmp15      ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, vcc_lo, ttmp15        ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, vcc_lo, ttmp15      ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, vcc_lo, ttmp15        ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, vcc_hi, 0xfe0b        ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b      ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, vcc_hi, 0xfe0b        ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b      ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, vcc_hi, 0xfe0b        ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, ttmp15, src_scc       ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, ttmp15, src_scc     ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, ttmp15, src_scc       ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, ttmp15, src_scc     ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, ttmp15, src_scc       ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00]
 0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00
 
-# GFX11: v_ashrrev_i16 v5, m0, 0x3800
+# W32-REAL16: v_ashrrev_i16 v5.l, m0, 0x3800          ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xfe,0x01,0x00,0x00,0x38,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, m0, 0x3800            ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xfe,0x01,0x00,0x00,0x38,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, m0, 0x3800          ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xfe,0x01,0x00,0x00,0x38,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, m0, 0x3800            ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xfe,0x01,0x00,0x00,0x38,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x7d,0xe0,0x01,0x00
 
-# GFX11: v_ashrrev_i16 v5, exec_lo, -1           ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, exec_lo, -1         ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, exec_lo, -1           ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, exec_lo, -1         ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, exec_lo, -1           ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00]
 0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00
 
-# GFX11: v_ashrrev_i16 v5, exec_hi, null         ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, exec_hi, null       ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, exec_hi, null         ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, exec_hi, null       ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, exec_hi, null         ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, null, exec_lo         ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, null, exec_lo       ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, null, exec_lo         ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, null, exec_lo       ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, null, exec_lo         ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, -1, exec_hi           ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, -1, exec_hi         ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, -1, exec_hi           ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, -1, exec_hi         ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, -1, exec_hi           ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, 0x3800, m0
+# W32-REAL16: v_ashrrev_i16 v5.l, 0x3800, m0          ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xfa,0x00,0x00,0x00,0x38,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, 0x3800, m0            ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xfa,0x00,0x00,0x00,0x38,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, 0x3800, m0          ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xfa,0x00,0x00,0x00,0x38,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, 0x3800, m0            ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xfa,0x00,0x00,0x00,0x38,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0xf0,0xfa,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v5, src_scc, vcc_lo       ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, src_scc, vcc_lo     ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v5, src_scc, vcc_lo       ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v5.l, src_scc, vcc_lo     ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, src_scc, vcc_lo       ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00]
 0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00
 
-# GFX11: v_ashrrev_i16 v255, 0xfe0b, vcc_hi      ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
+# W32-REAL16: v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi    ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
+# W32-FAKE16: v_ashrrev_i16 v255, 0xfe0b, vcc_hi      ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
+# W64-REAL16: v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi    ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
+# W64-FAKE16: v_ashrrev_i16 v255, 0xfe0b, vcc_hi      ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
 0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00
 
----------------
broxigarchen wrote:

added. Sorry I made a typo in my script making v_assrrev_i16 to be b16 and cause this to be missing

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


More information about the llvm-commits mailing list