1// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s | FileCheck --check-prefix=GFX908 %s
2// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX908-ERR %s
3
4buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095
5// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03]
6
7buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095
8// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0xff,0x02,0x03]
9
10buffer_atomic_add_f32 v5, off, s[12:15], s3 offset:4095
11// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x03,0x03]
12
13buffer_atomic_add_f32 v5, off, s[96:99], s3 offset:4095
14// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x18,0x03]
15
16buffer_atomic_add_f32 v5, off, s[8:11], s101 offset:4095
17// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x65]
18
19buffer_atomic_add_f32 v5, off, s[8:11], m0 offset:4095
20// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x7c]
21
22buffer_atomic_add_f32 v5, off, s[8:11], 0 offset:4095
23// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x80]
24
25buffer_atomic_add_f32 v5, off, s[8:11], -1 offset:4095
26// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0xc1]
27
28buffer_atomic_add_f32 v5, v0, s[8:11], s3 idxen offset:4095
29// GFX908: encoding: [0xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03]
30
31buffer_atomic_add_f32 v5, v0, s[8:11], s3 offen offset:4095
32// GFX908: encoding: [0xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03]
33
34buffer_atomic_add_f32 v5, off, s[8:11], s3
35// GFX908: encoding: [0x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03]
36
37buffer_atomic_add_f32 v5, off, s[8:11], s3
38// GFX908: encoding: [0x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03]
39
40buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:7
41// GFX908: encoding: [0x07,0x00,0x34,0xe1,0x00,0x05,0x02,0x03]
42
43buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095 glc
44// GFX908-ERR: error: invalid operand for instruction
45
46buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095 slc
47// GFX908: encoding: [0xff,0x0f,0x36,0xe1,0x00,0x05,0x02,0x03]
48
49buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:4095
50// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x03]
51
52buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095
53// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0xff,0x02,0x03]
54
55buffer_atomic_pk_add_f16 v5, off, s[12:15], s3 offset:4095
56// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x03,0x03]
57
58buffer_atomic_pk_add_f16 v5, off, s[96:99], s3 offset:4095
59// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x18,0x03]
60
61buffer_atomic_pk_add_f16 v5, off, s[8:11], s101 offset:4095
62// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x65]
63
64buffer_atomic_pk_add_f16 v5, off, s[8:11], m0 offset:4095
65// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x7c]
66
67buffer_atomic_pk_add_f16 v5, off, s[8:11], 0 offset:4095
68// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x80]
69
70buffer_atomic_pk_add_f16 v5, off, s[8:11], -1 offset:4095
71// GFX908: encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0xc1]
72
73buffer_atomic_pk_add_f16 v5, v0, s[8:11], s3 idxen offset:4095
74// GFX908: encoding: [0xff,0x2f,0x38,0xe1,0x00,0x05,0x02,0x03]
75
76buffer_atomic_pk_add_f16 v5, v0, s[8:11], s3 offen offset:4095
77// GFX908: encoding: [0xff,0x1f,0x38,0xe1,0x00,0x05,0x02,0x03]
78
79buffer_atomic_pk_add_f16 v5, off, s[8:11], s3
80// GFX908: encoding: [0x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03]
81
82buffer_atomic_pk_add_f16 v5, off, s[8:11], s3
83// GFX908: encoding: [0x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03]
84
85buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:7
86// GFX908: encoding: [0x07,0x00,0x38,0xe1,0x00,0x05,0x02,0x03]
87
88buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:4095 glc
89// GFX908-ERR: error: invalid operand for instruction
90
91buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:4095 slc
92// GFX908: encoding: [0xff,0x0f,0x3a,0xe1,0x00,0x05,0x02,0x03]
93
94global_atomic_add_f32 v[1:2], v2, off offset:-1
95// GFX908: encoding: [0xff,0x9f,0x34,0xdd,0x01,0x02,0x7f,0x00]
96
97global_atomic_add_f32 v[1:2], v255, off offset:-1
98// GFX908: encoding: [0xff,0x9f,0x34,0xdd,0x01,0xff,0x7f,0x00]
99
100global_atomic_add_f32 v[1:2], v2, off
101// GFX908: encoding: [0x00,0x80,0x34,0xdd,0x01,0x02,0x7f,0x00]
102
103global_atomic_pk_add_f16 v[1:2], v2, off offset:-1
104// GFX908: encoding: [0xff,0x9f,0x38,0xdd,0x01,0x02,0x7f,0x00]
105
106global_atomic_pk_add_f16 v[1:2], v255, off offset:-1
107// GFX908: encoding: [0xff,0x9f,0x38,0xdd,0x01,0xff,0x7f,0x00]
108
109global_atomic_pk_add_f16 v[1:2], v2, off
110// GFX908: encoding: [0x00,0x80,0x38,0xdd,0x01,0x02,0x7f,0x00]
111