[llvm] [AMDGPU][True16][MC] Support VOP3 only instructions with true16 and fake16 (PR #109891)
Joe Nash via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 13:45:01 PDT 2024
================
@@ -513,51 +513,117 @@
# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
-# GFX12: 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
+# GFX11: v_ashrrev_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,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.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00]
+0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00
+
+# GFX11: v_ashrrev_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W32-REAL16: v_ashrrev_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,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.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00]
+# W64-FAKE16: v_ashrrev_i16 v5, v255, v255 ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00]
+0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00
+
+# GFX11: v_ashrrev_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00]
----------------
Sisyph wrote:
Misplaced GFX11
https://github.com/llvm/llvm-project/pull/109891
More information about the llvm-commits
mailing list