[llvm] f465a2c - [AMDGPU] Add new 64-bit SALU instructions (#74449)

via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 02:08:26 PST 2023


Author: Jay Foad
Date: 2023-12-06T10:08:22Z
New Revision: f465a2c83d3c2a142ceba6104f7e7093859efa54

URL: https://github.com/llvm/llvm-project/commit/f465a2c83d3c2a142ceba6104f7e7093859efa54
DIFF: https://github.com/llvm/llvm-project/commit/f465a2c83d3c2a142ceba6104f7e7093859efa54.diff

LOG: [AMDGPU] Add new 64-bit SALU instructions (#74449)

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/SOPInstructions.td
    llvm/test/MC/AMDGPU/gfx12_asm_sop2.s
    llvm/test/MC/AMDGPU/gfx12_asm_sop2_alias.s
    llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/SOPInstructions.td b/llvm/lib/Target/AMDGPU/SOPInstructions.td
index 87f64913c02d0..bfde97735bb20 100644
--- a/llvm/lib/Target/AMDGPU/SOPInstructions.td
+++ b/llvm/lib/Target/AMDGPU/SOPInstructions.td
@@ -578,6 +578,20 @@ def S_MAX_U32 : SOP2_32 <"s_max_u32",
 } // End isCommutable = 1
 } // End Defs = [SCC]
 
+let SubtargetPredicate = isGFX12Plus in {
+  def S_ADD_U64 : SOP2_64<"s_add_u64">{
+    let isCommutable = 1;
+  }
+
+  def S_SUB_U64 : SOP2_64<"s_sub_u64">;
+
+  def S_MUL_U64 : SOP2_64 <"s_mul_u64",
+    [(set i64:$sdst, (UniformBinFrag<mul> i64:$src0, i64:$src1))]> {
+    let isCommutable = 1;
+  }
+
+} // End SubtargetPredicate = isGFX12Plus
+
 def SelectPat : PatFrag <
   (ops node:$src1, node:$src2),
   (select SCC, $src1, $src2),
@@ -2072,6 +2086,9 @@ defm S_MUL_HI_I32      : SOP2_Real_gfx11_gfx12<0x02e>;
 defm S_CSELECT_B32     : SOP2_Real_gfx11_gfx12<0x030>;
 defm S_CSELECT_B64     : SOP2_Real_gfx11_gfx12<0x031>;
 defm S_PACK_HL_B32_B16 : SOP2_Real_gfx11_gfx12<0x035>;
+defm S_ADD_NC_U64      : SOP2_Real_Renamed_gfx12<0x053, S_ADD_U64, "s_add_nc_u64">;
+defm S_SUB_NC_U64      : SOP2_Real_Renamed_gfx12<0x054, S_SUB_U64, "s_sub_nc_u64">;
+defm S_MUL_U64         : SOP2_Real_gfx12<0x055>;
 
 //===----------------------------------------------------------------------===//
 // SOP2 - GFX1150, GFX12

diff  --git a/llvm/test/MC/AMDGPU/gfx12_asm_sop2.s b/llvm/test/MC/AMDGPU/gfx12_asm_sop2.s
index 002133bcecdfc..1a898bebde57f 100644
--- a/llvm/test/MC/AMDGPU/gfx12_asm_sop2.s
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_sop2.s
@@ -1,5 +1,239 @@
 // RUN: llvm-mc -arch=amdgcn -show-encoding -mcpu=gfx1200 %s | FileCheck -check-prefix=GFX12 %s
 
+s_add_nc_u64 s[0:1], s[2:3], s[4:5]
+// GFX12: encoding: [0x02,0x04,0x80,0xa9]
+
+s_add_nc_u64 s[100:101], s[102:103], s[104:105]
+// GFX12: encoding: [0x66,0x68,0xe4,0xa9]
+
+s_add_nc_u64 s[0:1], s[104:105], s[102:103]
+// GFX12: encoding: [0x68,0x66,0x80,0xa9]
+
+s_add_nc_u64 s[104:105], s[0:1], s[102:103]
+// GFX12: encoding: [0x00,0x66,0xe8,0xa9]
+
+s_add_nc_u64 s[104:105], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0xe8,0xa9]
+
+s_add_nc_u64 s[104:105], s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xe8,0xa9]
+
+s_add_nc_u64 s[0:1], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], s[102:103]
+// GFX12: encoding: [0x02,0x66,0x80,0xa9]
+
+s_add_nc_u64 exec, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xfe,0xa9]
+
+s_add_nc_u64 vcc, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xea,0xa9]
+
+s_add_nc_u64 s[0:1], exec, s[2:3]
+// GFX12: encoding: [0x7e,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], vcc, s[2:3]
+// GFX12: encoding: [0x6a,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], 0, s[2:3]
+// GFX12: encoding: [0x80,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], -1, s[2:3]
+// GFX12: encoding: [0xc1,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], 0.5, s[2:3]
+// GFX12: encoding: [0xf0,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], -4.0, s[2:3]
+// GFX12: encoding: [0xf7,0x02,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], 0x3f717273, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x80,0xa9,0x73,0x72,0x71,0x3f]
+
+s_add_nc_u64 s[0:1], 0xaf123456, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x80,0xa9,0x56,0x34,0x12,0xaf]
+
+s_add_nc_u64 s[0:1], s[2:3], exec
+// GFX12: encoding: [0x02,0x7e,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], vcc
+// GFX12: encoding: [0x02,0x6a,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], 0
+// GFX12: encoding: [0x02,0x80,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], -1
+// GFX12: encoding: [0x02,0xc1,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], 0.5
+// GFX12: encoding: [0x02,0xf0,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], -4.0
+// GFX12: encoding: [0x02,0xf7,0x80,0xa9]
+
+s_add_nc_u64 s[0:1], s[2:3], 0x3f717273
+// GFX12: encoding: [0x02,0xff,0x80,0xa9,0x73,0x72,0x71,0x3f]
+
+s_add_nc_u64 s[0:1], s[2:3], 0xaf123456
+// GFX12: encoding: [0x02,0xff,0x80,0xa9,0x56,0x34,0x12,0xaf]
+
+s_sub_nc_u64 s[0:1], s[2:3], s[4:5]
+// GFX12: encoding: [0x02,0x04,0x00,0xaa]
+
+s_sub_nc_u64 s[100:101], s[102:103], s[104:105]
+// GFX12: encoding: [0x66,0x68,0x64,0xaa]
+
+s_sub_nc_u64 s[0:1], s[104:105], s[102:103]
+// GFX12: encoding: [0x68,0x66,0x00,0xaa]
+
+s_sub_nc_u64 s[104:105], s[0:1], s[102:103]
+// GFX12: encoding: [0x00,0x66,0x68,0xaa]
+
+s_sub_nc_u64 s[104:105], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0x68,0xaa]
+
+s_sub_nc_u64 s[104:105], s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0x68,0xaa]
+
+s_sub_nc_u64 s[0:1], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], s[102:103]
+// GFX12: encoding: [0x02,0x66,0x00,0xaa]
+
+s_sub_nc_u64 exec, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0x7e,0xaa]
+
+s_sub_nc_u64 vcc, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0x6a,0xaa]
+
+s_sub_nc_u64 s[0:1], exec, s[2:3]
+// GFX12: encoding: [0x7e,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], vcc, s[2:3]
+// GFX12: encoding: [0x6a,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], 0, s[2:3]
+// GFX12: encoding: [0x80,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], -1, s[2:3]
+// GFX12: encoding: [0xc1,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], 0.5, s[2:3]
+// GFX12: encoding: [0xf0,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], -4.0, s[2:3]
+// GFX12: encoding: [0xf7,0x02,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], 0x3f717273, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x00,0xaa,0x73,0x72,0x71,0x3f]
+
+s_sub_nc_u64 s[0:1], 0xaf123456, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x00,0xaa,0x56,0x34,0x12,0xaf]
+
+s_sub_nc_u64 s[0:1], s[2:3], exec
+// GFX12: encoding: [0x02,0x7e,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], vcc
+// GFX12: encoding: [0x02,0x6a,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], 0
+// GFX12: encoding: [0x02,0x80,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], -1
+// GFX12: encoding: [0x02,0xc1,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], 0.5
+// GFX12: encoding: [0x02,0xf0,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], -4.0
+// GFX12: encoding: [0x02,0xf7,0x00,0xaa]
+
+s_sub_nc_u64 s[0:1], s[2:3], 0x3f717273
+// GFX12: encoding: [0x02,0xff,0x00,0xaa,0x73,0x72,0x71,0x3f]
+
+s_sub_nc_u64 s[0:1], s[2:3], 0xaf123456
+// GFX12: encoding: [0x02,0xff,0x00,0xaa,0x56,0x34,0x12,0xaf]
+
+s_mul_u64 s[0:1], s[2:3], s[4:5]
+// GFX12: encoding: [0x02,0x04,0x80,0xaa]
+
+s_mul_u64 s[100:101], s[102:103], s[104:105]
+// GFX12: encoding: [0x66,0x68,0xe4,0xaa]
+
+s_mul_u64 s[0:1], s[104:105], s[102:103]
+// GFX12: encoding: [0x68,0x66,0x80,0xaa]
+
+s_mul_u64 s[104:105], s[0:1], s[102:103]
+// GFX12: encoding: [0x00,0x66,0xe8,0xaa]
+
+s_mul_u64 s[104:105], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0xe8,0xaa]
+
+s_mul_u64 s[104:105], s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xe8,0xaa]
+
+s_mul_u64 s[0:1], s[102:103], s[2:3]
+// GFX12: encoding: [0x66,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], s[102:103]
+// GFX12: encoding: [0x02,0x66,0x80,0xaa]
+
+s_mul_u64 exec, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xfe,0xaa]
+
+s_mul_u64 vcc, s[0:1], s[2:3]
+// GFX12: encoding: [0x00,0x02,0xea,0xaa]
+
+s_mul_u64 s[0:1], exec, s[2:3]
+// GFX12: encoding: [0x7e,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], vcc, s[2:3]
+// GFX12: encoding: [0x6a,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], 0, s[2:3]
+// GFX12: encoding: [0x80,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], -1, s[2:3]
+// GFX12: encoding: [0xc1,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], 0.5, s[2:3]
+// GFX12: encoding: [0xf0,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], -4.0, s[2:3]
+// GFX12: encoding: [0xf7,0x02,0x80,0xaa]
+
+s_mul_u64 s[0:1], 0x3f717273, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x80,0xaa,0x73,0x72,0x71,0x3f]
+
+s_mul_u64 s[0:1], 0xaf123456, s[2:3]
+// GFX12: encoding: [0xff,0x02,0x80,0xaa,0x56,0x34,0x12,0xaf]
+
+s_mul_u64 s[0:1], s[2:3], exec
+// GFX12: encoding: [0x02,0x7e,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], vcc
+// GFX12: encoding: [0x02,0x6a,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], 0
+// GFX12: encoding: [0x02,0x80,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], -1
+// GFX12: encoding: [0x02,0xc1,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], 0.5
+// GFX12: encoding: [0x02,0xf0,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], -4.0
+// GFX12: encoding: [0x02,0xf7,0x80,0xaa]
+
+s_mul_u64 s[0:1], s[2:3], 0x3f717273
+// GFX12: encoding: [0x02,0xff,0x80,0xaa,0x73,0x72,0x71,0x3f]
+
+s_mul_u64 s[0:1], s[2:3], 0xaf123456
+// GFX12: encoding: [0x02,0xff,0x80,0xaa,0x56,0x34,0x12,0xaf]
+
 s_add_f32 s5, s1, s2
 // GFX12: encoding: [0x01,0x02,0x05,0xa0]
 

diff  --git a/llvm/test/MC/AMDGPU/gfx12_asm_sop2_alias.s b/llvm/test/MC/AMDGPU/gfx12_asm_sop2_alias.s
index 283add1d8367b..86c3bdbaf8300 100644
--- a/llvm/test/MC/AMDGPU/gfx12_asm_sop2_alias.s
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_sop2_alias.s
@@ -6,6 +6,9 @@ s_add_i32 s0, s1, s2
 s_add_u32 s0, s1, s2
 // GFX12: encoding: [0x01,0x02,0x00,0x80]
 
+s_add_u64 s[0:1], s[2:3], s[4:5]
+// GFX12: encoding: [0x02,0x04,0x80,0xa9]
+
 s_addc_u32 s0, s1, s2
 // GFX12: encoding: [0x01,0x02,0x00,0x82]
 
@@ -15,6 +18,9 @@ s_sub_i32 s0, s1, s2
 s_sub_u32 s0, s1, s2
 // GFX12: encoding: [0x01,0x02,0x80,0x80]
 
+s_sub_u64 s[0:1], s[2:3], s[4:5]
+// GFX12: encoding: [0x02,0x04,0x00,0xaa]
+
 s_subb_u32 s0, s1, s2
 // GFX12: encoding: [0x01,0x02,0x80,0x82]
 

diff  --git a/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt
index 1827ce6140831..c177af7a6e50b 100644
--- a/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt
+++ b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt
@@ -1,6 +1,240 @@
 # RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -disassemble -show-encoding < %s | FileCheck -strict-whitespace -check-prefix=GFX12 %s
 # RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -mattr=-WavefrontSize32,+WavefrontSize64 -disassemble -show-encoding < %s | FileCheck -strict-whitespace -check-prefix=GFX12 %s
 
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], s[4:5]     ; encoding: [0x02,0x04,0x80,0xa9]
+0x02,0x04,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[100:101], s[102:103], s[104:105] ; encoding: [0x66,0x68,0xe4,0xa9]
+0x66,0x68,0xe4,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[104:105], s[102:103] ; encoding: [0x68,0x66,0x80,0xa9]
+0x68,0x66,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[104:105], s[0:1], s[102:103] ; encoding: [0x00,0x66,0xe8,0xa9]
+0x00,0x66,0xe8,0xa9
+
+# GFX12: s_add_nc_u64 s[104:105], s[102:103], s[2:3] ; encoding: [0x66,0x02,0xe8,0xa9]
+0x66,0x02,0xe8,0xa9
+
+# GFX12: s_add_nc_u64 s[104:105], s[0:1], s[2:3] ; encoding: [0x00,0x02,0xe8,0xa9]
+0x00,0x02,0xe8,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[102:103], s[2:3] ; encoding: [0x66,0x02,0x80,0xa9]
+0x66,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], s[102:103] ; encoding: [0x02,0x66,0x80,0xa9]
+0x02,0x66,0x80,0xa9
+
+# GFX12: s_add_nc_u64 exec, s[0:1], s[2:3]       ; encoding: [0x00,0x02,0xfe,0xa9]
+0x00,0x02,0xfe,0xa9
+
+# GFX12: s_add_nc_u64 vcc, s[0:1], s[2:3]        ; encoding: [0x00,0x02,0xea,0xa9]
+0x00,0x02,0xea,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], exec, s[2:3]       ; encoding: [0x7e,0x02,0x80,0xa9]
+0x7e,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], vcc, s[2:3]        ; encoding: [0x6a,0x02,0x80,0xa9]
+0x6a,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], 0, s[2:3]          ; encoding: [0x80,0x02,0x80,0xa9]
+0x80,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], -1, s[2:3]         ; encoding: [0xc1,0x02,0x80,0xa9]
+0xc1,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], 0.5, s[2:3]        ; encoding: [0xf0,0x02,0x80,0xa9]
+0xf0,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], -4.0, s[2:3]       ; encoding: [0xf7,0x02,0x80,0xa9]
+0xf7,0x02,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], 0x3f717273, s[2:3] ; encoding: [0xff,0x02,0x80,0xa9,0x73,0x72,0x71,0x3f]
+0xff,0x02,0x80,0xa9,0x73,0x72,0x71,0x3f
+
+# GFX12: s_add_nc_u64 s[0:1], 0xaf123456, s[2:3] ; encoding: [0xff,0x02,0x80,0xa9,0x56,0x34,0x12,0xaf]
+0xff,0x02,0x80,0xa9,0x56,0x34,0x12,0xaf
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], exec       ; encoding: [0x02,0x7e,0x80,0xa9]
+0x02,0x7e,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], vcc        ; encoding: [0x02,0x6a,0x80,0xa9]
+0x02,0x6a,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], 0          ; encoding: [0x02,0x80,0x80,0xa9]
+0x02,0x80,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], -1         ; encoding: [0x02,0xc1,0x80,0xa9]
+0x02,0xc1,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], 0.5        ; encoding: [0x02,0xf0,0x80,0xa9]
+0x02,0xf0,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], -4.0       ; encoding: [0x02,0xf7,0x80,0xa9]
+0x02,0xf7,0x80,0xa9
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], 0x3f717273 ; encoding: [0x02,0xff,0x80,0xa9,0x73,0x72,0x71,0x3f]
+0x02,0xff,0x80,0xa9,0x73,0x72,0x71,0x3f
+
+# GFX12: s_add_nc_u64 s[0:1], s[2:3], 0xaf123456 ; encoding: [0x02,0xff,0x80,0xa9,0x56,0x34,0x12,0xaf]
+0x02,0xff,0x80,0xa9,0x56,0x34,0x12,0xaf
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], s[4:5]     ; encoding: [0x02,0x04,0x00,0xaa]
+0x02,0x04,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[100:101], s[102:103], s[104:105] ; encoding: [0x66,0x68,0x64,0xaa]
+0x66,0x68,0x64,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[104:105], s[102:103] ; encoding: [0x68,0x66,0x00,0xaa]
+0x68,0x66,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[104:105], s[0:1], s[102:103] ; encoding: [0x00,0x66,0x68,0xaa]
+0x00,0x66,0x68,0xaa
+
+# GFX12: s_sub_nc_u64 s[104:105], s[102:103], s[2:3] ; encoding: [0x66,0x02,0x68,0xaa]
+0x66,0x02,0x68,0xaa
+
+# GFX12: s_sub_nc_u64 s[104:105], s[0:1], s[2:3] ; encoding: [0x00,0x02,0x68,0xaa]
+0x00,0x02,0x68,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[102:103], s[2:3] ; encoding: [0x66,0x02,0x00,0xaa]
+0x66,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], s[102:103] ; encoding: [0x02,0x66,0x00,0xaa]
+0x02,0x66,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 exec, s[0:1], s[2:3]       ; encoding: [0x00,0x02,0x7e,0xaa]
+0x00,0x02,0x7e,0xaa
+
+# GFX12: s_sub_nc_u64 vcc, s[0:1], s[2:3]        ; encoding: [0x00,0x02,0x6a,0xaa]
+0x00,0x02,0x6a,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], exec, s[2:3]       ; encoding: [0x7e,0x02,0x00,0xaa]
+0x7e,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], vcc, s[2:3]        ; encoding: [0x6a,0x02,0x00,0xaa]
+0x6a,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], 0, s[2:3]          ; encoding: [0x80,0x02,0x00,0xaa]
+0x80,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], -1, s[2:3]         ; encoding: [0xc1,0x02,0x00,0xaa]
+0xc1,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], 0.5, s[2:3]        ; encoding: [0xf0,0x02,0x00,0xaa]
+0xf0,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], -4.0, s[2:3]       ; encoding: [0xf7,0x02,0x00,0xaa]
+0xf7,0x02,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], 0x3f717273, s[2:3] ; encoding: [0xff,0x02,0x00,0xaa,0x73,0x72,0x71,0x3f]
+0xff,0x02,0x00,0xaa,0x73,0x72,0x71,0x3f
+
+# GFX12: s_sub_nc_u64 s[0:1], 0xaf123456, s[2:3] ; encoding: [0xff,0x02,0x00,0xaa,0x56,0x34,0x12,0xaf]
+0xff,0x02,0x00,0xaa,0x56,0x34,0x12,0xaf
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], exec       ; encoding: [0x02,0x7e,0x00,0xaa]
+0x02,0x7e,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], vcc        ; encoding: [0x02,0x6a,0x00,0xaa
+0x02,0x6a,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], 0          ; encoding: [0x02,0x80,0x00,0xaa]
+0x02,0x80,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], -1         ; encoding: [0x02,0xc1,0x00,0xaa]
+0x02,0xc1,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], 0.5        ; encoding: [0x02,0xf0,0x00,0xaa]
+0x02,0xf0,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], -4.0       ; encoding: [0x02,0xf7,0x00,0xaa]
+0x02,0xf7,0x00,0xaa
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], 0x3f717273 ; encoding: [0x02,0xff,0x00,0xaa,0x73,0x72,0x71,0x3f]
+0x02,0xff,0x00,0xaa,0x73,0x72,0x71,0x3f
+
+# GFX12: s_sub_nc_u64 s[0:1], s[2:3], 0xaf123456 ; encoding: [0x02,0xff,0x00,0xaa,0x56,0x34,0x12,0xaf]
+0x02,0xff,0x00,0xaa,0x56,0x34,0x12,0xaf
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], s[4:5]        ; encoding: [0x02,0x04,0x80,0xaa]
+0x02,0x04,0x80,0xaa
+
+# GFX12: s_mul_u64 s[100:101], s[102:103], s[104:105] ; encoding: [0x66,0x68,0xe4,0xaa]
+0x66,0x68,0xe4,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[104:105], s[102:103] ; encoding: [0x68,0x66,0x80,0xaa]
+0x68,0x66,0x80,0xaa
+
+# GFX12: s_mul_u64 s[104:105], s[0:1], s[102:103] ; encoding: [0x00,0x66,0xe8,0xaa]
+0x00,0x66,0xe8,0xaa
+
+# GFX12: s_mul_u64 s[104:105], s[102:103], s[2:3] ; encoding: [0x66,0x02,0xe8,0xaa]
+0x66,0x02,0xe8,0xaa
+
+# GFX12: s_mul_u64 s[104:105], s[0:1], s[2:3]    ; encoding: [0x00,0x02,0xe8,0xaa]
+0x00,0x02,0xe8,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[102:103], s[2:3]    ; encoding: [0x66,0x02,0x80,0xaa]
+0x66,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], s[102:103]    ; encoding: [0x02,0x66,0x80,0xaa]
+0x02,0x66,0x80,0xaa
+
+# GFX12: s_mul_u64 exec, s[0:1], s[2:3]          ; encoding: [0x00,0x02,0xfe,0xaa]
+0x00,0x02,0xfe,0xaa
+
+# GFX12: s_mul_u64 vcc, s[0:1], s[2:3]           ; encoding: [0x00,0x02,0xea,0xaa]
+0x00,0x02,0xea,0xaa
+
+# GFX12: s_mul_u64 s[0:1], exec, s[2:3]          ; encoding: [0x7e,0x02,0x80,0xaa]
+0x7e,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], vcc, s[2:3]           ; encoding: [0x6a,0x02,0x80,0xaa]
+0x6a,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], 0, s[2:3]             ; encoding: [0x80,0x02,0x80,0xaa]
+0x80,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], -1, s[2:3]            ; encoding: [0xc1,0x02,0x80,0xaa]
+0xc1,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], 0.5, s[2:3]           ; encoding: [0xf0,0x02,0x80,0xaa]
+0xf0,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], -4.0, s[2:3]          ; encoding: [0xf7,0x02,0x80,0xaa]
+0xf7,0x02,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], 0x3f717273, s[2:3]    ; encoding: [0xff,0x02,0x80,0xaa,0x73,0x72,0x71,0x3f]
+0xff,0x02,0x80,0xaa,0x73,0x72,0x71,0x3f
+
+# GFX12: s_mul_u64 s[0:1], 0xaf123456, s[2:3]    ; encoding: [0xff,0x02,0x80,0xaa,0x56,0x34,0x12,0xaf]
+0xff,0x02,0x80,0xaa,0x56,0x34,0x12,0xaf
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], exec          ; encoding: [0x02,0x7e,0x80,0xaa]
+0x02,0x7e,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], vcc           ; encoding: [0x02,0x6a,0x80,0xaa]
+0x02,0x6a,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], 0             ; encoding: [0x02,0x80,0x80,0xaa]
+0x02,0x80,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], -1            ; encoding: [0x02,0xc1,0x80,0xaa]
+0x02,0xc1,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], 0.5           ; encoding: [0x02,0xf0,0x80,0xaa]
+0x02,0xf0,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], -4.0          ; encoding: [0x02,0xf7,0x80,0xaa]
+0x02,0xf7,0x80,0xaa
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], 0x3f717273    ; encoding: [0x02,0xff,0x80,0xaa,0x73,0x72,0x71,0x3f]
+0x02,0xff,0x80,0xaa,0x73,0x72,0x71,0x3f
+
+# GFX12: s_mul_u64 s[0:1], s[2:3], 0xaf123456    ; encoding: [0x02,0xff,0x80,0xaa,0x56,0x34,0x12,0xaf]
+0x02,0xff,0x80,0xaa,0x56,0x34,0x12,0xaf
+
 # GFX12: s_add_f32 s5, s1, s2                    ; encoding: [0x01,0x02,0x05,0xa0]
 0x01,0x02,0x05,0xa0
 


        


More information about the llvm-commits mailing list