1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# RUN: llvm-mc --triple hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
2f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Hexagon Programmer's Reference Manual 11.2 CR
3f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
4f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Corner detection acceleration
5f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 93 e1 12 6b
6f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = !fastcorner9(p2, p1)
7f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 91 e3 02 6b
8f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = fastcorner9(p2, p3)
9f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
10f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Logical reductions on predicates
11f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c0 82 6b
12f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = any8(p2)
13f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c0 a2 6b
14f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = all8(p2)
15f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
16f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Looping instructions
17f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 15 60
18f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarloop0(0, r21)
19f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 35 60
20f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarloop1(0, r21)
21f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 60 c0 00 69
22f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarloop0(0, #12)
23f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 60 c0 20 69
24f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarloop1(0, #12)
25f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
26f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Add to PC
27f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 91 ca 49 6a
28f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = add(pc, #21)
29f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
30f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Pipelined loop instructions
31f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 b5 60
32f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp1loop0(0, r21)
33f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 d5 60
34f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp2loop0(0, r21)
35f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 f5 60
36f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp3loop0(0, r21)
37f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: a1 c0 a0 69
38f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp1loop0(0, #21)
39f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: a1 c0 c0 69
40f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp2loop0(0, #21)
41f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: a1 c0 e0 69
42f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp3 = sp3loop0(0, #21)
43f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
44f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Logical operations on predicates
45f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c3 02 6b
46f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p3, p2)
47f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 12 6b
48f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p2, and(p3, p3))
49f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c3 22 6b
50f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p3, p2)
51f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 32 6b
52f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p2, or(p3, p3))
53f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c3 42 6b
54f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = xor(p2, p3)
55f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 52 6b
56f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p2, and(p3, p3))
57f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c2 63 6b
58f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p2, !p3)
59f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 72 6b
60f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p2, or(p3, p3))
61f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 92 6b
62f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p2, and(p3, !p3))
63f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 b2 6b
64f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = and(p2, or(p3, !p3))
65f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c0 c2 6b
66f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = not(p2)
67f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 d2 6b
68f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p2, and(p3, !p3))
69f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 01 c2 e3 6b
70f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p2, !p3)
71f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: c1 c3 f2 6b
72f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarp1 = or(p2, or(p3, !p3))
73f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
74f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# User control register transfer
75f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 0d c0 35 62
76f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarcs1 = r21
77f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 c0 0d 6a
78f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = cs1
79