xref: /llvm-project/llvm/test/MC/AMDGPU/mimg-err.s (revision 2f69f9a95068fc85de18dc26f35d160a40343286)
1// RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:
2// RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:
3// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:
4// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx90a %s 2>&1 | FileCheck %s --check-prefix=NOGFX90A --implicit-check-not=error:
5
6//===----------------------------------------------------------------------===//
7// Image Load/Store
8//===----------------------------------------------------------------------===//
9
10image_load    v[4:6], v[237:240], s[28:35] dmask:0x7 tfe
11// NOGCN:    error: image data size does not match dmask and tfe
12// NOGFX9:   error: image data size does not match dmask, d16 and tfe
13// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
14
15image_load    v[4:5], v[237:240], s[28:35] dmask:0x7
16// NOGCN:    error: image data size does not match dmask and tfe
17// NOGFX9:   error: image data size does not match dmask, d16 and tfe
18// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d16
19
20image_store   v[4:7], v[237:240], s[28:35] dmask:0x7
21// NOGCN:    error: image data size does not match dmask and tfe
22// NOGFX9:   error: image data size does not match dmask, d16 and tfe
23// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d16
24
25image_store   v[4:7], v[237:240], s[28:35] dmask:0xe
26// NOGCN:    error: image data size does not match dmask and tfe
27// NOGFX9:   error: image data size does not match dmask, d16 and tfe
28// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d16
29
30image_load    v4, v[237:240], s[28:35] tfe
31// NOGCN:    error: image data size does not match dmask and tfe
32// NOGFX9:   error: image data size does not match dmask, d16 and tfe
33// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
34
35//===----------------------------------------------------------------------===//
36// Image Sample
37//===----------------------------------------------------------------------===//
38
39image_sample  v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 tfe
40// NOGCN:    error: image data size does not match dmask and tfe
41// NOGFX9:   error: image data size does not match dmask, d16 and tfe
42// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
43
44image_sample  v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x3
45// NOGCN:    error: image data size does not match dmask and tfe
46// NOGFX9:   error: image data size does not match dmask, d16 and tfe
47// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d16
48
49image_sample  v[193:195], v[237:240], s[28:35], s[4:7] dmask:0xf
50// NOGCN:    error: image data size does not match dmask and tfe
51// NOGFX9:   error: image data size does not match dmask, d16 and tfe
52// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d16
53
54//===----------------------------------------------------------------------===//
55// Image Atomics
56//===----------------------------------------------------------------------===//
57
58image_atomic_add v252, v2, s[8:15] dmask:0x1 tfe
59// NOGCN:    error: image data size does not match dmask and tfe
60// NOGFX9:   error: image data size does not match dmask and tfe
61// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
62
63image_atomic_add v[6:7], v255, s[8:15] dmask:0x2
64// NOGCN:    error: image data size does not match dmask and tfe
65// NOGFX9:   error: image data size does not match dmask and tfe
66// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask
67
68image_atomic_add v[6:7], v255, s[8:15] dmask:0xf
69// NOGCN:    error: image data size does not match dmask and tfe
70// NOGFX9:   error: image data size does not match dmask and tfe
71// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask
72
73image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xf tfe
74// NOGCN:    error: image data size does not match dmask and tfe
75// NOGFX9:   error: image data size does not match dmask and tfe
76// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
77
78image_atomic_add v252, v2, s[8:15]
79// NOGCN:    error: invalid atomic image dmask
80// NOGFX9:   error: invalid atomic image dmask
81// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid atomic image dmask
82
83image_atomic_add v[6:7], v255, s[8:15] dmask:0x2 tfe
84// NOGCN:    error: invalid atomic image dmask
85// NOGFX9:   error: invalid atomic image dmask
86// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
87
88image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xe tfe
89// NOGCN:    error: invalid atomic image dmask
90// NOGFX9:   error: invalid atomic image dmask
91// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction
92
93//===----------------------------------------------------------------------===//
94// Image Gather
95//===----------------------------------------------------------------------===//
96
97image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x3
98// NOGCN:    error: invalid image_gather dmask: only one bit must be set
99// NOGFX9:   error: invalid image_gather dmask: only one bit must be set
100// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: instruction not supported on this GPU
101