Skip to content

Commit 7898803

Browse files
committed
[AMDGPU][NFC] Add more global_atomic_cmpswap tests
1 parent 171ca93 commit 7898803

File tree

4 files changed

+106
-6
lines changed

4 files changed

+106
-6
lines changed

llvm/test/MC/AMDGPU/flat-global.s

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,29 @@ global_atomic_cmpswap v[3:4], v[5:6], off
232232
// GFX9: global_atomic_cmpswap v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x04,0xdd,0x03,0x05,0x7f,0x00]
233233
// VI-ERR: error: instruction not supported on this GPU
234234

235-
global_atomic_cmpswap_x2 v[3:4], v[5:8], off
236-
// GFX10: encoding: [0x00,0x80,0x44,0xdd,0x03,0x05,0x7d,0x00]
237-
// GFX9: global_atomic_cmpswap_x2 v[3:4], v[5:8], off ; encoding: [0x00,0x80,0x84,0xdd,0x03,0x05,0x7f,0x00]
235+
global_atomic_cmpswap v1, v[3:4], v[5:6], off glc
236+
// GFX10: encoding: [0x00,0x80,0xc5,0xdc,0x03,0x05,0x7d,0x01]
237+
// GFX9: global_atomic_cmpswap v1, v[3:4], v[5:6], off glc ; encoding: [0x00,0x80,0x05,0xdd,0x03,0x05,0x7f,0x01]
238+
// VI-ERR: error: instruction not supported on this GPU
239+
240+
global_atomic_cmpswap v1, v3, v[5:6], s[2:3] glc
241+
// GFX10: encoding: [0x00,0x80,0xc5,0xdc,0x03,0x05,0x02,0x01]
242+
// GFX9: global_atomic_cmpswap v1, v3, v[5:6], s[2:3] glc ; encoding: [0x00,0x80,0x05,0xdd,0x03,0x05,0x02,0x01]
243+
// VI-ERR: error: instruction not supported on this GPU
244+
245+
global_atomic_cmpswap_x2 v[5:6], v[7:10], off
246+
// GFX10: encoding: [0x00,0x80,0x44,0xdd,0x05,0x07,0x7d,0x00]
247+
// GFX9: global_atomic_cmpswap_x2 v[5:6], v[7:10], off ; encoding: [0x00,0x80,0x84,0xdd,0x05,0x07,0x7f,0x00]
248+
// VI-ERR: error: instruction not supported on this GPU
249+
250+
global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off glc
251+
// GFX10: encoding: [0x00,0x80,0x45,0xdd,0x05,0x07,0x7d,0x01]
252+
// GFX9: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off glc ; encoding: [0x00,0x80,0x85,0xdd,0x05,0x07,0x7f,0x01]
253+
// VI-ERR: error: instruction not supported on this GPU
254+
255+
global_atomic_cmpswap_x2 v[1:2], v5, v[7:10], s[2:3] glc
256+
// GFX10: encoding: [0x00,0x80,0x45,0xdd,0x05,0x07,0x02,0x01]
257+
// GFX9: global_atomic_cmpswap_x2 v[1:2], v5, v[7:10], s[2:3] glc ; encoding: [0x00,0x80,0x85,0xdd,0x05,0x07,0x02,0x01]
238258
// VI-ERR: error: instruction not supported on this GPU
239259

240260
global_atomic_swap v[3:4], v5, off
@@ -362,9 +382,29 @@ global_atomic_cmpswap v[3:4], v[5:6], off offset:-16
362382
// GFX9: global_atomic_cmpswap v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x04,0xdd,0x03,0x05,0x7f,0x00]
363383
// VI-ERR: :1: error: instruction not supported on this GPU
364384

365-
global_atomic_cmpswap_x2 v[3:4], v[5:8], off offset:-16
366-
// GFX10: encoding: [0xf0,0x8f,0x44,0xdd,0x03,0x05,0x7d,0x00]
367-
// GFX9: global_atomic_cmpswap_x2 v[3:4], v[5:8], off offset:-16 ; encoding: [0xf0,0x9f,0x84,0xdd,0x03,0x05,0x7f,0x00]
385+
global_atomic_cmpswap v1, v[3:4], v[5:6], off offset:-16 glc
386+
// GFX10: encoding: [0xf0,0x8f,0xc5,0xdc,0x03,0x05,0x7d,0x01]
387+
// GFX9: global_atomic_cmpswap v1, v[3:4], v[5:6], off offset:-16 glc ; encoding: [0xf0,0x9f,0x05,0xdd,0x03,0x05,0x7f,0x01]
388+
// VI-ERR: :1: error: instruction not supported on this GPU
389+
390+
global_atomic_cmpswap v1, v3, v[5:6], s[2:3] offset:-16 glc
391+
// GFX10: encoding: [0xf0,0x8f,0xc5,0xdc,0x03,0x05,0x02,0x01]
392+
// GFX9: global_atomic_cmpswap v1, v3, v[5:6], s[2:3] offset:-16 glc ; encoding: [0xf0,0x9f,0x05,0xdd,0x03,0x05,0x02,0x01]
393+
// VI-ERR: :1: error: instruction not supported on this GPU
394+
395+
global_atomic_cmpswap_x2 v[5:6], v[7:10], off offset:-16
396+
// GFX10: encoding: [0xf0,0x8f,0x44,0xdd,0x05,0x07,0x7d,0x00]
397+
// GFX9: global_atomic_cmpswap_x2 v[5:6], v[7:10], off offset:-16 ; encoding: [0xf0,0x9f,0x84,0xdd,0x05,0x07,0x7f,0x00]
398+
// VI-ERR: :1: error: instruction not supported on this GPU
399+
400+
global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off offset:-16 glc
401+
// GFX10: encoding: [0xf0,0x8f,0x45,0xdd,0x05,0x07,0x7d,0x01]
402+
// GFX9: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off offset:-16 glc ; encoding: [0xf0,0x9f,0x85,0xdd,0x05,0x07,0x7f,0x01]
403+
// VI-ERR: :1: error: instruction not supported on this GPU
404+
405+
global_atomic_cmpswap_x2 v[1:2], v5, v[7:10], s[2:3] offset:-16 glc
406+
// GFX10: encoding: [0xf0,0x8f,0x45,0xdd,0x05,0x07,0x02,0x01]
407+
// GFX9: global_atomic_cmpswap_x2 v[1:2], v5, v[7:10], s[2:3] offset:-16 glc ; encoding: [0xf0,0x9f,0x85,0xdd,0x05,0x07,0x02,0x01]
368408
// VI-ERR: :1: error: instruction not supported on this GPU
369409

370410
global_atomic_swap v[3:4], v5, off offset:-16

llvm/test/MC/AMDGPU/gfx9_asm_all.s

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4760,6 +4760,18 @@ global_atomic_cmpswap v[1:2], v[254:255], off offset:-1
47604760
global_atomic_cmpswap v[1:2], v[2:3], off
47614761
// CHECK: [0x00,0x80,0x04,0xdd,0x01,0x02,0x7f,0x00]
47624762

4763+
global_atomic_cmpswap v1, v[2:3], v[4:5], off offset:-1 glc
4764+
// CHECK: [0xff,0x9f,0x05,0xdd,0x02,0x04,0x7f,0x01]
4765+
4766+
global_atomic_cmpswap v1, v[2:3], v[254:255], off offset:-1 glc
4767+
// CHECK: [0xff,0x9f,0x05,0xdd,0x02,0xfe,0x7f,0x01]
4768+
4769+
global_atomic_cmpswap v1, v2, v[4:5], s[2:3] offset:-1 glc
4770+
// CHECK: [0xff,0x9f,0x05,0xdd,0x02,0x04,0x02,0x01]
4771+
4772+
global_atomic_cmpswap v1, v[2:3], v[4:5], off glc
4773+
// CHECK: [0x00,0x80,0x05,0xdd,0x02,0x04,0x7f,0x01]
4774+
47634775
global_atomic_add v[1:2], v2, off offset:-1
47644776
// CHECK: [0xff,0x9f,0x08,0xdd,0x01,0x02,0x7f,0x00]
47654777

@@ -4877,6 +4889,18 @@ global_atomic_cmpswap_x2 v[1:2], v[252:255], off offset:-1
48774889
global_atomic_cmpswap_x2 v[1:2], v[2:5], off
48784890
// CHECK: [0x00,0x80,0x84,0xdd,0x01,0x02,0x7f,0x00]
48794891

4892+
global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off offset:-1 glc
4893+
// CHECK: [0xff,0x9f,0x85,0xdd,0x05,0x07,0x7f,0x01]
4894+
4895+
global_atomic_cmpswap_x2 v[1:2], v[5:6], v[252:255], off offset:-1 glc
4896+
// CHECK: [0xff,0x9f,0x85,0xdd,0x05,0xfc,0x7f,0x01]
4897+
4898+
global_atomic_cmpswap_x2 v[1:2], v5, v[252:255], s[2:3] offset:-1 glc
4899+
// CHECK: [0xff,0x9f,0x85,0xdd,0x05,0xfc,0x02,0x01]
4900+
4901+
global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off glc
4902+
// CHECK: [0x00,0x80,0x85,0xdd,0x05,0x07,0x7f,0x01]
4903+
48804904
global_atomic_add_x2 v[1:2], v[2:3], off offset:-1
48814905
// CHECK: [0xff,0x9f,0x88,0xdd,0x01,0x02,0x7f,0x00]
48824906

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8102,12 +8102,24 @@
81028102
# GFX10: global_atomic_cmpswap v[3:4], v[5:6], off offset:2032 ; encoding: [0xf0,0x87,0xc4,0xdc,0x03,0x05,0x7d,0x00]
81038103
0xf0,0x87,0xc4,0xdc,0x03,0x05,0x7d,0x00
81048104

8105+
# GFX10: global_atomic_cmpswap v1, v[3:4], v[5:6], off glc ; encoding: [0x00,0x80,0xc5,0xdc,0x03,0x05,0x7d,0x01]
8106+
0x00,0x80,0xc5,0xdc,0x03,0x05,0x7d,0x01
8107+
8108+
# GFX10: global_atomic_cmpswap v1, v3, v[5:6], s[2:3] glc ; encoding: [0x00,0x80,0xc5,0xdc,0x03,0x05,0x02,0x01]
8109+
0x00,0x80,0xc5,0xdc,0x03,0x05,0x02,0x01
8110+
81058111
# GFX10: global_atomic_cmpswap_x2 v[3:4], v[5:8], off ; encoding: [0x00,0x80,0x44,0xdd,0x03,0x05,0x7d,0x00]
81068112
0x00,0x80,0x44,0xdd,0x03,0x05,0x7d,0x00
81078113

81088114
# GFX10: global_atomic_cmpswap_x2 v[3:4], v[5:8], off offset:2032 ; encoding: [0xf0,0x87,0x44,0xdd,0x03,0x05,0x7d,0x00]
81098115
0xf0,0x87,0x44,0xdd,0x03,0x05,0x7d,0x00
81108116

8117+
# GFX10: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off glc ; encoding: [0x00,0x80,0x45,0xdd,0x05,0x07,0x7d,0x01]
8118+
0x00,0x80,0x45,0xdd,0x05,0x07,0x7d,0x01
8119+
8120+
# GFX10: global_atomic_cmpswap_x2 v[1:2], v5, v[7:10], s[2:3] glc ; encoding: [0x00,0x80,0x45,0xdd,0x05,0x07,0x02,0x01]
8121+
0x00,0x80,0x45,0xdd,0x05,0x07,0x02,0x01
8122+
81118123
# GFX10: global_atomic_dec v[3:4], v5, off ; encoding: [0x00,0x80,0xf4,0xdc,0x03,0x05,0x7d,0x00]
81128124
0x00,0x80,0xf4,0xdc,0x03,0x05,0x7d,0x00
81138125

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4128,6 +4128,18 @@
41284128
# CHECK: global_atomic_cmpswap v[1:2], v[2:3], off ; encoding: [0x00,0x80,0x04,0xdd,0x01,0x02,0x7f,0x00]
41294129
0x00,0x80,0x04,0xdd,0x01,0x02,0x7f,0x00
41304130

4131+
# CHECK: global_atomic_cmpswap v1, v[2:3], v[4:5], off offset:-1 glc ; encoding: [0xff,0x9f,0x05,0xdd,0x02,0x04,0x7f,0x01]
4132+
0xff,0x9f,0x05,0xdd,0x02,0x04,0x7f,0x01
4133+
4134+
# CHECK: global_atomic_cmpswap v1, v[2:3], v[254:255], off offset:-1 glc ; encoding: [0xff,0x9f,0x05,0xdd,0x02,0xfe,0x7f,0x01]
4135+
0xff,0x9f,0x05,0xdd,0x02,0xfe,0x7f,0x01
4136+
4137+
# CHECK: global_atomic_cmpswap v1, v2, v[4:5], s[2:3] offset:-1 glc ; encoding: [0xff,0x9f,0x05,0xdd,0x02,0x04,0x02,0x01]
4138+
0xff,0x9f,0x05,0xdd,0x02,0x04,0x02,0x01
4139+
4140+
# CHECK: global_atomic_cmpswap v1, v[2:3], v[4:5], off glc ; encoding: [0x00,0x80,0x05,0xdd,0x02,0x04,0x7f,0x01]
4141+
0x00,0x80,0x05,0xdd,0x02,0x04,0x7f,0x01
4142+
41314143
# CHECK: global_atomic_add v[1:2], v2, off offset:-1 ; encoding: [0xff,0x9f,0x08,0xdd,0x01,0x02,0x7f,0x00]
41324144
0xff,0x9f,0x08,0xdd,0x01,0x02,0x7f,0x00
41334145

@@ -4245,6 +4257,18 @@
42454257
# CHECK: global_atomic_cmpswap_x2 v[1:2], v[2:5], off ; encoding: [0x00,0x80,0x84,0xdd,0x01,0x02,0x7f,0x00]
42464258
0x00,0x80,0x84,0xdd,0x01,0x02,0x7f,0x00
42474259

4260+
# CHECK: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off offset:-1 glc ; encoding: [0xff,0x9f,0x85,0xdd,0x05,0x07,0x7f,0x01]
4261+
0xff,0x9f,0x85,0xdd,0x05,0x07,0x7f,0x01
4262+
4263+
# CHECK: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[252:255], off offset:-1 glc ; encoding: [0xff,0x9f,0x85,0xdd,0x05,0xfc,0x7f,0x01]
4264+
0xff,0x9f,0x85,0xdd,0x05,0xfc,0x7f,0x01
4265+
4266+
# CHECK: global_atomic_cmpswap_x2 v[1:2], v5, v[252:255], s[2:3] offset:-1 glc ; encoding: [0xff,0x9f,0x85,0xdd,0x05,0xfc,0x02,0x01]
4267+
0xff,0x9f,0x85,0xdd,0x05,0xfc,0x02,0x01
4268+
4269+
# CHECK: global_atomic_cmpswap_x2 v[1:2], v[5:6], v[7:10], off glc ; encoding: [0x00,0x80,0x85,0xdd,0x05,0x07,0x7f,0x01]
4270+
0x00,0x80,0x85,0xdd,0x05,0x07,0x7f,0x01
4271+
42484272
# CHECK: global_atomic_add_x2 v[1:2], v[2:3], off offset:-1 ; encoding: [0xff,0x9f,0x88,0xdd,0x01,0x02,0x7f,0x00]
42494273
0xff,0x9f,0x88,0xdd,0x01,0x02,0x7f,0x00
42504274

0 commit comments

Comments
 (0)