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