1# RUN: llvm-mc -triple=hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
2# Hexagon Programmer's Reference Manual 11.7.1 NV/J
3
4# Jump to address conditioned on new register value
5# CHECK: 11 40 71 70
6# CHECK-NEXT: 00 d5 02 20
7{ r17 = r17
8  if (cmp.eq(r17.new, r21)) jump:nt 0x0 }
9# CHECK: 11 40 71 70
10# CHECK-NEXT: 00 f5 02 20
11{ r17 = r17
12  if (cmp.eq(r17.new, r21)) jump:t 0x0 }
13# CHECK: 11 40 71 70
14# CHECK-NEXT: 00 d5 42 20
15{ r17 = r17
16  if (!cmp.eq(r17.new, r21)) jump:nt 0x0 }
17# CHECK: 11 40 71 70
18# CHECK-NEXT: 00 f5 42 20
19{ r17 = r17
20  if (!cmp.eq(r17.new, r21)) jump:t 0x0 }
21# CHECK: 11 40 71 70
22# CHECK-NEXT: 00 d5 82 20
23{ r17 = r17
24  if (cmp.gt(r17.new, r21)) jump:nt 0x0 }
25# CHECK: 11 40 71 70
26# CHECK-NEXT: 00 f5 82 20
27{ r17 = r17
28  if (cmp.gt(r17.new, r21)) jump:t 0x0 }
29# CHECK: 11 40 71 70
30# CHECK-NEXT: 00 d5 c2 20
31{ r17 = r17
32  if (!cmp.gt(r17.new, r21)) jump:nt 0x0 }
33# CHECK: 11 40 71 70
34# CHECK-NEXT: 00 f5 c2 20
35{ r17 = r17
36  if (!cmp.gt(r17.new, r21)) jump:t 0x0 }
37# CHECK: 11 40 71 70
38# CHECK-NEXT: 00 d5 02 21
39{ r17 = r17
40  if (cmp.gtu(r17.new, r21)) jump:nt 0x0 }
41# CHECK: 11 40 71 70
42# CHECK-NEXT: 00 f5 02 21
43{ r17 = r17
44  if (cmp.gtu(r17.new, r21)) jump:t 0x0 }
45# CHECK: 11 40 71 70
46# CHECK-NEXT: 00 d5 42 21
47{ r17 = r17
48  if (!cmp.gtu(r17.new, r21)) jump:nt 0x0 }
49# CHECK: 11 40 71 70
50# CHECK-NEXT: 00 f5 42 21
51{ r17 = r17
52  if (!cmp.gtu(r17.new, r21)) jump:t 0x0 }
53# CHECK: 11 40 71 70
54# CHECK-NEXT: 00 d5 82 21
55{ r17 = r17
56  if (cmp.gt(r21, r17.new)) jump:nt 0x0 }
57# CHECK: 11 40 71 70
58# CHECK-NEXT: 00 f5 82 21
59{ r17 = r17
60  if (cmp.gt(r21, r17.new)) jump:t 0x0 }
61# CHECK: 11 40 71 70
62# CHECK-NEXT: 00 d5 c2 21
63{ r17 = r17
64  if (!cmp.gt(r21, r17.new)) jump:nt 0x0 }
65# CHECK: 11 40 71 70
66# CHECK-NEXT: 00 f5 c2 21
67{ r17 = r17
68  if (!cmp.gt(r21, r17.new)) jump:t 0x0 }
69# CHECK: 11 40 71 70
70# CHECK-NEXT: 00 d5 02 22
71{ r17 = r17
72  if (cmp.gtu(r21, r17.new)) jump:nt 0x0 }
73# CHECK: 11 40 71 70
74# CHECK-NEXT: 00 f5 02 22
75{ r17 = r17
76  if (cmp.gtu(r21, r17.new)) jump:t 0x0 }
77# CHECK: 11 40 71 70
78# CHECK-NEXT: 00 d5 42 22
79{ r17 = r17
80  if (!cmp.gtu(r21, r17.new)) jump:nt 0x0 }
81# CHECK: 11 40 71 70
82# CHECK-NEXT: 00 f5 42 22
83{ r17 = r17
84  if (!cmp.gtu(r21, r17.new)) jump:t 0x0 }
85# CHECK: 11 40 71 70
86# CHECK-NEXT: 00 d5 02 24
87{ r17 = r17
88  if (cmp.eq(r17.new, #21)) jump:nt 0x0 }
89# CHECK: 11 40 71 70
90# CHECK-NEXT: 00 f5 02 24
91{ r17 = r17
92  if (cmp.eq(r17.new, #21)) jump:t 0x0 }
93# CHECK: 11 40 71 70
94# CHECK-NEXT: 00 d5 42 24
95{ r17 = r17
96  if (!cmp.eq(r17.new, #21)) jump:nt 0x0 }
97# CHECK: 11 40 71 70
98# CHECK-NEXT: 00 f5 42 24
99{ r17 = r17
100  if (!cmp.eq(r17.new, #21)) jump:t 0x0 }
101# CHECK: 11 40 71 70
102# CHECK-NEXT: 00 d5 82 24
103{ r17 = r17
104  if (cmp.gt(r17.new, #21)) jump:nt 0x0 }
105# CHECK: 11 40 71 70
106# CHECK-NEXT: 00 f5 82 24
107{ r17 = r17
108  if (cmp.gt(r17.new, #21)) jump:t 0x0 }
109# CHECK: 11 40 71 70
110# CHECK-NEXT: 00 d5 c2 24
111{ r17 = r17
112  if (!cmp.gt(r17.new, #21)) jump:nt 0x0 }
113# CHECK: 11 40 71 70
114# CHECK-NEXT: 00 f5 c2 24
115{ r17 = r17
116  if (!cmp.gt(r17.new, #21)) jump:t 0x0 }
117# CHECK: 11 40 71 70
118# CHECK-NEXT: 00 d5 02 25
119{ r17 = r17
120  if (cmp.gtu(r17.new, #21)) jump:nt 0x0 }
121# CHECK: 11 40 71 70
122# CHECK-NEXT: 00 f5 02 25
123{ r17 = r17
124  if (cmp.gtu(r17.new, #21)) jump:t 0x0 }
125# CHECK: 11 40 71 70
126# CHECK-NEXT: 00 d5 42 25
127{ r17 = r17
128  if (!cmp.gtu(r17.new, #21)) jump:nt 0x0 }
129# CHECK: 11 40 71 70
130# CHECK-NEXT: 00 f5 42 25
131{ r17 = r17
132  if (!cmp.gtu(r17.new, #21)) jump:t 0x0 }
133# CHECK: 11 40 71 70
134# CHECK-NEXT: 00 c0 82 25
135{ r17 = r17
136  if (tstbit(r17.new, #0)) jump:nt 0x0 }
137# CHECK: 11 40 71 70
138# CHECK-NEXT: 00 e0 82 25
139{ r17 = r17
140  if (tstbit(r17.new, #0)) jump:t 0x0 }
141# CHECK: 11 40 71 70
142# CHECK-NEXT: 00 c0 c2 25
143{ r17 = r17
144  if (!tstbit(r17.new, #0)) jump:nt 0x0 }
145# CHECK: 11 40 71 70
146# CHECK-NEXT: 00 e0 c2 25
147{ r17 = r17
148  if (!tstbit(r17.new, #0)) jump:t 0x0 }
149# CHECK: 11 40 71 70
150# CHECK-NEXT: 00 c0 02 26
151{ r17 = r17
152  if (cmp.eq(r17.new, #-1)) jump:nt 0x0 }
153# CHECK: 11 40 71 70
154# CHECK-NEXT: 00 e0 02 26
155{ r17 = r17
156  if (cmp.eq(r17.new, #-1)) jump:t 0x0 }
157# CHECK: 11 40 71 70
158# CHECK-NEXT: 00 c0 42 26
159{ r17 = r17
160  if (!cmp.eq(r17.new, #-1)) jump:nt 0x0 }
161# CHECK: 11 40 71 70
162# CHECK-NEXT: 00 e0 42 26
163{ r17 = r17
164  if (!cmp.eq(r17.new, #-1)) jump:t 0x0 }
165# CHECK: 11 40 71 70
166# CHECK-NEXT: 00 c0 82 26
167{ r17 = r17
168  if (cmp.gt(r17.new, #-1)) jump:nt 0x0 }
169# CHECK: 11 40 71 70
170# CHECK-NEXT: 00 e0 82 26
171{ r17 = r17
172  if (cmp.gt(r17.new, #-1)) jump:t 0x0 }
173# CHECK: 11 40 71 70
174# CHECK-NEXT: 00 c0 c2 26
175{ r17 = r17
176  if (!cmp.gt(r17.new, #-1)) jump:nt 0x0 }
177# CHECK: 11 40 71 70
178# CHECK-NEXT: 00 e0 c2 26
179{ r17 = r17
180  if (!cmp.gt(r17.new, #-1)) jump:t 0x0 }
181