79 lines · plain
1# RUN: llvm-mc --triple hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s2# Hexagon Programmer's Reference Manual 11.2 CR3 4# Corner detection acceleration5# CHECK: 93 e1 12 6b6p3 = !fastcorner9(p2, p1)7# CHECK: 91 e3 02 6b8p1 = fastcorner9(p2, p3)9 10# Logical reductions on predicates11# CHECK: 01 c0 82 6b12p1 = any8(p2)13# CHECK: 01 c0 a2 6b14p1 = all8(p2)15 16# Looping instructions17# CHECK: 00 c0 15 6018loop0(0, r21)19# CHECK: 00 c0 35 6020loop1(0, r21)21# CHECK: 60 c0 00 6922loop0(0, #12)23# CHECK: 60 c0 20 6924loop1(0, #12)25 26# Add to PC27# CHECK: 91 ca 49 6a28r17 = add(pc, #21)29 30# Pipelined loop instructions31# CHECK: 00 c0 b5 6032p3 = sp1loop0(0, r21)33# CHECK: 00 c0 d5 6034p3 = sp2loop0(0, r21)35# CHECK: 00 c0 f5 6036p3 = sp3loop0(0, r21)37# CHECK: a1 c0 a0 6938p3 = sp1loop0(0, #21)39# CHECK: a1 c0 c0 6940p3 = sp2loop0(0, #21)41# CHECK: a1 c0 e0 6942p3 = sp3loop0(0, #21)43 44# Logical operations on predicates45# CHECK: 01 c3 02 6b46p1 = and(p3, p2)47# CHECK: c1 c3 12 6b48p1 = and(p2, and(p3, p3))49# CHECK: 01 c3 22 6b50p1 = or(p3, p2)51# CHECK: c1 c3 32 6b52p1 = and(p2, or(p3, p3))53# CHECK: 01 c3 42 6b54p1 = xor(p2, p3)55# CHECK: c1 c3 52 6b56p1 = or(p2, and(p3, p3))57# CHECK: 01 c2 63 6b58p1 = and(p2, !p3)59# CHECK: c1 c3 72 6b60p1 = or(p2, or(p3, p3))61# CHECK: c1 c3 92 6b62p1 = and(p2, and(p3, !p3))63# CHECK: c1 c3 b2 6b64p1 = and(p2, or(p3, !p3))65# CHECK: 01 c0 c2 6b66p1 = not(p2)67# CHECK: c1 c3 d2 6b68p1 = or(p2, and(p3, !p3))69# CHECK: 01 c2 e3 6b70p1 = or(p2, !p3)71# CHECK: c1 c3 f2 6b72p1 = or(p2, or(p3, !p3))73 74# User control register transfer75# CHECK: 0d c0 35 6276cs1 = r2177# CHECK: 11 c0 0d 6a78r17 = cs179