You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.7 KiB
79 lines
1.7 KiB
4 months ago
|
# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s
|
||
|
# Hexagon Programmer's Reference Manual 11.2 CR
|
||
|
|
||
|
# Corner detection acceleration
|
||
|
0x93 0xe1 0x12 0x6b
|
||
|
# CHECK: p3 = !fastcorner9(p2, p1)
|
||
|
0x91 0xe3 0x02 0x6b
|
||
|
# CHECK: p1 = fastcorner9(p2, p3)
|
||
|
|
||
|
# Logical reductions on predicates
|
||
|
0x01 0xc0 0x82 0x6b
|
||
|
# CHECK: p1 = any8(p2)
|
||
|
0x01 0xc0 0xa2 0x6b
|
||
|
# CHECK: p1 = all8(p2)
|
||
|
|
||
|
# Looping instructions
|
||
|
0x08 0xc4 0x15 0x60
|
||
|
# CHECK: loop0
|
||
|
0x08 0xc4 0x35 0x60
|
||
|
# CHECK: loop1
|
||
|
0x68 0xc4 0x00 0x69
|
||
|
# CHECK: loop0
|
||
|
0x68 0xc4 0x20 0x69
|
||
|
# CHECK: loop1
|
||
|
|
||
|
# Add to PC
|
||
|
0x91 0xca 0x49 0x6a
|
||
|
# CHECK: r17 = add(pc, #21)
|
||
|
|
||
|
# Pipelined loop instructions
|
||
|
0x08 0xc4 0xb5 0x60
|
||
|
# CHECK: p3 = sp1loop0
|
||
|
0x08 0xc4 0xd5 0x60
|
||
|
# CHECK: p3 = sp2loop0
|
||
|
0x08 0xc4 0xf5 0x60
|
||
|
# CHECK: p3 = sp3loop0
|
||
|
0xa9 0xc4 0xa0 0x69
|
||
|
# CHECK: p3 = sp1loop0
|
||
|
0xa9 0xc4 0xc0 0x69
|
||
|
# CHECK: p3 = sp2loop0
|
||
|
0xa9 0xc4 0xe0 0x69
|
||
|
# CHECK: p3 = sp3loop0
|
||
|
|
||
|
# Logical operations on predicates
|
||
|
0x01 0xc3 0x02 0x6b
|
||
|
# CHECK: p1 = and(p3, p2)
|
||
|
0xc1 0xc3 0x12 0x6b
|
||
|
# CHECK: p1 = and(p2, and(p3, p3))
|
||
|
0x01 0xc3 0x22 0x6b
|
||
|
# CHECK: p1 = or(p3, p2)
|
||
|
0xc1 0xc3 0x32 0x6b
|
||
|
# CHECK: p1 = and(p2, or(p3, p3))
|
||
|
0x01 0xc3 0x42 0x6b
|
||
|
# CHECK: p1 = xor(p2, p3)
|
||
|
0xc1 0xc3 0x52 0x6b
|
||
|
# CHECK: p1 = or(p2, and(p3, p3))
|
||
|
0x01 0xc2 0x63 0x6b
|
||
|
# CHECK: p1 = and(p2, !p3)
|
||
|
0xc1 0xc3 0x72 0x6b
|
||
|
# CHECK: p1 = or(p2, or(p3, p3))
|
||
|
0xc1 0xc3 0x92 0x6b
|
||
|
# CHECK: p1 = and(p2, and(p3, !p3))
|
||
|
0xc1 0xc3 0xb2 0x6b
|
||
|
# CHECK: p1 = and(p2, or(p3, !p3))
|
||
|
0x01 0xc0 0xc2 0x6b
|
||
|
# CHECK: p1 = not(p2)
|
||
|
0xc1 0xc3 0xd2 0x6b
|
||
|
# CHECK: p1 = or(p2, and(p3, !p3))
|
||
|
0x01 0xc2 0xe3 0x6b
|
||
|
# CHECK: p1 = or(p2, !p3)
|
||
|
0xc1 0xc3 0xf2 0x6b
|
||
|
# CHECK: p1 = or(p2, or(p3, !p3))
|
||
|
|
||
|
# User control register transfer
|
||
|
0x0d 0xc0 0x35 0x62
|
||
|
# CHECK: cs1 = r21
|
||
|
0x11 0xc0 0x0d 0x6a
|
||
|
# CHECK: r17 = cs1
|