1// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI %s
2// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
3// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICI %s
4
5//===----------------------------------------------------------------------===//
6// SOPC Instructions
7//===----------------------------------------------------------------------===//
8
9s_cmp_eq_i32 s1, s2
10// GCN: s_cmp_eq_i32 s1, s2 ; encoding: [0x01,0x02,0x00,0xbf]
11
12s_cmp_lg_i32 s1, s2
13// GCN: s_cmp_lg_i32 s1, s2 ; encoding: [0x01,0x02,0x01,0xbf]
14
15s_cmp_gt_i32 s1, s2
16// GCN: s_cmp_gt_i32 s1, s2 ; encoding: [0x01,0x02,0x02,0xbf]
17
18s_cmp_ge_i32 s1, s2
19// GCN: s_cmp_ge_i32 s1, s2 ; encoding: [0x01,0x02,0x03,0xbf]
20
21s_cmp_lt_i32 s1, s2
22// GCN: s_cmp_lt_i32 s1, s2 ; encoding: [0x01,0x02,0x04,0xbf]
23
24s_cmp_le_i32 s1, s2
25// GCN: s_cmp_le_i32 s1, s2 ; encoding: [0x01,0x02,0x05,0xbf]
26
27s_cmp_eq_u32 s1, s2
28// GCN: s_cmp_eq_u32 s1, s2 ; encoding: [0x01,0x02,0x06,0xbf]
29
30s_cmp_lg_u32 s1, s2
31// GCN: s_cmp_lg_u32 s1, s2 ; encoding: [0x01,0x02,0x07,0xbf]
32
33s_cmp_gt_u32 s1, s2
34// GCN: s_cmp_gt_u32 s1, s2 ; encoding: [0x01,0x02,0x08,0xbf]
35
36s_cmp_ge_u32 s1, s2
37// GCN: s_cmp_ge_u32 s1, s2 ; encoding: [0x01,0x02,0x09,0xbf]
38
39s_cmp_lt_u32 s1, s2
40// GCN: s_cmp_lt_u32 s1, s2 ; encoding: [0x01,0x02,0x0a,0xbf]
41
42s_cmp_le_u32 s1, s2
43// GCN: s_cmp_le_u32 s1, s2 ; encoding: [0x01,0x02,0x0b,0xbf]
44
45s_bitcmp0_b32 s1, s2
46// GCN: s_bitcmp0_b32 s1, s2 ; encoding: [0x01,0x02,0x0c,0xbf]
47
48s_bitcmp1_b32 s1, s2
49// GCN: s_bitcmp1_b32 s1, s2 ; encoding: [0x01,0x02,0x0d,0xbf]
50
51s_bitcmp0_b64 s[2:3], s4
52// GCN: s_bitcmp0_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0e,0xbf]
53
54s_bitcmp1_b64 s[2:3], s4
55// GCN: s_bitcmp1_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0f,0xbf]
56
57s_setvskip s3, s5
58// GCN: s_setvskip s3, s5 ; encoding: [0x03,0x05,0x10,0xbf]
59
60s_cmp_eq_u64 s[0:1], s[2:3]
61// VI: s_cmp_eq_u64 s[0:1], s[2:3] ; encoding: [0x00,0x02,0x12,0xbf]
62// NOSICI: error: instruction not supported on this GPU
63
64s_cmp_lg_u64 s[0:1], s[2:3]
65// VI: s_cmp_lg_u64 s[0:1], s[2:3] ; encoding: [0x00,0x02,0x13,0xbf]
66// NOSICI: error: instruction not supported on this GPU
67
68s_set_gpr_idx_on s0, 0
69// VI: s_set_gpr_idx_on s0, 0 ; encoding: [0x00,0x00,0x11,0xbf]
70// NOSICI: error: instruction not supported on this GPU
71
72s_set_gpr_idx_on s0, 1
73// VI: s_set_gpr_idx_on s0, src0 ; encoding: [0x00,0x01,0x11,0xbf]
74// NOSICI: error: instruction not supported on this GPU
75
76s_set_gpr_idx_on s0, 3
77// VI: s_set_gpr_idx_on s0, src0 src1 ; encoding: [0x00,0x03,0x11,0xbf]
78// NOSICI: error: instruction not supported on this GPU
79
80s_set_gpr_idx_on s0, 15
81// VI: s_set_gpr_idx_on s0, dst src0 src1 src2 ; encoding: [0x00,0x0f,0x11,0xbf]
82// NOSICI: error: instruction not supported on this GPU
83