File: cr.s

package info (click to toggle)
llvm-toolchain-14 1%3A14.0.6-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,496,180 kB
  • sloc: cpp: 5,593,972; ansic: 986,872; asm: 585,869; python: 184,223; objc: 72,530; lisp: 31,119; f90: 27,793; javascript: 9,780; pascal: 9,762; sh: 9,482; perl: 7,468; ml: 5,432; awk: 3,523; makefile: 2,538; xml: 953; cs: 573; fortran: 567
file content (78 lines) | stat: -rw-r--r-- 1,603 bytes parent folder | download | duplicates (32)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# RUN: llvm-mc --triple hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
# Hexagon Programmer's Reference Manual 11.2 CR

# Corner detection acceleration
# CHECK: 93 e1 12 6b
p3 = !fastcorner9(p2, p1)
# CHECK: 91 e3 02 6b
p1 = fastcorner9(p2, p3)

# Logical reductions on predicates
# CHECK: 01 c0 82 6b
p1 = any8(p2)
# CHECK: 01 c0 a2 6b
p1 = all8(p2)

# Looping instructions
# CHECK: 00 c0 15 60
loop0(0, r21)
# CHECK: 00 c0 35 60
loop1(0, r21)
# CHECK: 60 c0 00 69
loop0(0, #12)
# CHECK: 60 c0 20 69
loop1(0, #12)

# Add to PC
# CHECK: 91 ca 49 6a
r17 = add(pc, #21)

# Pipelined loop instructions
# CHECK: 00 c0 b5 60
p3 = sp1loop0(0, r21)
# CHECK: 00 c0 d5 60
p3 = sp2loop0(0, r21)
# CHECK: 00 c0 f5 60
p3 = sp3loop0(0, r21)
# CHECK: a1 c0 a0 69
p3 = sp1loop0(0, #21)
# CHECK: a1 c0 c0 69
p3 = sp2loop0(0, #21)
# CHECK: a1 c0 e0 69
p3 = sp3loop0(0, #21)

# Logical operations on predicates
# CHECK: 01 c3 02 6b
p1 = and(p3, p2)
# CHECK: c1 c3 12 6b
p1 = and(p2, and(p3, p3))
# CHECK: 01 c3 22 6b
p1 = or(p3, p2)
# CHECK: c1 c3 32 6b
p1 = and(p2, or(p3, p3))
# CHECK: 01 c3 42 6b
p1 = xor(p2, p3)
# CHECK: c1 c3 52 6b
p1 = or(p2, and(p3, p3))
# CHECK: 01 c2 63 6b
p1 = and(p2, !p3)
# CHECK: c1 c3 72 6b
p1 = or(p2, or(p3, p3))
# CHECK: c1 c3 92 6b
p1 = and(p2, and(p3, !p3))
# CHECK: c1 c3 b2 6b
p1 = and(p2, or(p3, !p3))
# CHECK: 01 c0 c2 6b
p1 = not(p2)
# CHECK: c1 c3 d2 6b
p1 = or(p2, and(p3, !p3))
# CHECK: 01 c2 e3 6b
p1 = or(p2, !p3)
# CHECK: c1 c3 f2 6b
p1 = or(p2, or(p3, !p3))

# User control register transfer
# CHECK: 0d c0 35 62
cs1 = r21
# CHECK: 11 c0 0d 6a
r17 = cs1