Skip to content

Commit 7ddeea3

Browse files
authored
[LLVM][AMDGPU] MC support for ds_bpermute_fi_b32 (#124108)
Added assembler/disassembler support for ds_bpermute_fi_b32 instruction, as well as tests.
1 parent bda39a6 commit 7ddeea3

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

llvm/lib/Target/AMDGPU/DSInstructions.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,7 @@ def DS_PERMUTE_B32 : DS_1A1D_PERMUTE <"ds_permute_b32",
699699
int_amdgcn_ds_permute>;
700700
def DS_BPERMUTE_B32 : DS_1A1D_PERMUTE <"ds_bpermute_b32",
701701
int_amdgcn_ds_bpermute>;
702+
def DS_BPERMUTE_FI_B32 : DS_1A1D_PERMUTE <"ds_bpermute_fi_b32">;
702703
}
703704

704705
} // let SubtargetPredicate = isGFX8Plus
@@ -1264,6 +1265,7 @@ defm DS_PK_ADD_F16 : DS_Real_gfx12<0x09a>;
12641265
defm DS_PK_ADD_RTN_F16 : DS_Real_gfx12<0x0aa>;
12651266
defm DS_PK_ADD_BF16 : DS_Real_gfx12<0x09b>;
12661267
defm DS_PK_ADD_RTN_BF16 : DS_Real_gfx12<0x0ab>;
1268+
defm DS_BPERMUTE_FI_B32 : DS_Real_gfx12<0x0cd>;
12671269

12681270
// New aliases added in GFX12 without renaming the instructions.
12691271
let AssemblerPredicate = isGFX12Plus in {

llvm/test/MC/AMDGPU/gfx12_asm_ds.s

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1910,3 +1910,15 @@ ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,8,7)
19101910

19111911
ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "01pip")
19121912
// GFX12: [0x07,0x09,0xd4,0xd8,0x02,0x00,0x00,0x08]
1913+
1914+
ds_bpermute_fi_b32 v5, v1, v2
1915+
// GFX12: encoding: [0x00,0x00,0x34,0xdb,0x01,0x02,0x00,0x05]
1916+
1917+
ds_bpermute_fi_b32 v5, v1, v2 offset:65535
1918+
// GFX12: encoding: [0xff,0xff,0x34,0xdb,0x01,0x02,0x00,0x05]
1919+
1920+
ds_bpermute_fi_b32 v5, v1, v2 offset:0
1921+
// GFX12: encoding: [0x00,0x00,0x34,0xdb,0x01,0x02,0x00,0x05]
1922+
1923+
ds_bpermute_fi_b32 v255, v255, v255 offset:4
1924+
// GFX12: encoding: [0x04,0x00,0x34,0xdb,0xff,0xff,0x00,0xff]

llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_ds.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3233,3 +3233,12 @@
32333233

32343234
# GFX12: ds_xor_rtn_b64 v[5:6], v255, v[2:3] offset:65535 ; encoding: [0xff,0xff,0xac,0xd9,0xff,0x02,0x00,0x05]
32353235
0xff,0xff,0xac,0xd9,0xff,0x02,0x00,0x05
3236+
3237+
# GFX12: ds_bpermute_fi_b32 v5, v1, v2 ; encoding: [0x00,0x00,0x34,0xdb,0x01,0x02,0x00,0x05]
3238+
0x00,0x00,0x34,0xdb,0x01,0x02,0x00,0x05
3239+
3240+
# GFX12: ds_bpermute_fi_b32 v5, v1, v2 offset:65535 ; encoding: [0xff,0xff,0x34,0xdb,0x01,0x02,0x00,0x05]
3241+
0xff,0xff,0x34,0xdb,0x01,0x02,0x00,0x05
3242+
3243+
# GFX12: ds_bpermute_fi_b32 v255, v255, v255 offset:4 ; encoding: [0x04,0x00,0x34,0xdb,0xff,0xff,0x00,0xff]
3244+
0x04,0x00,0x34,0xdb,0xff,0xff,0x00,0xff

0 commit comments

Comments
 (0)