1# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s 2# Hexagon Programmer's Reference Manual 11.2 CR 3 4# Corner detection acceleration 50x93 0xe1 0x12 0x6b 6# CHECK: p3 = !fastcorner9(p2, p1) 70x91 0xe3 0x02 0x6b 8# CHECK: p1 = fastcorner9(p2, p3) 9 10# Logical reductions on predicates 110x01 0xc0 0x82 0x6b 12# CHECK: p1 = any8(p2) 130x01 0xc0 0xa2 0x6b 14# CHECK: p1 = all8(p2) 15 16# Looping instructions 170x08 0xc4 0x15 0x60 18# CHECK: loop0 190x08 0xc4 0x35 0x60 20# CHECK: loop1 210x68 0xc4 0x00 0x69 22# CHECK: loop0 230x68 0xc4 0x20 0x69 24# CHECK: loop1 25 26# Add to PC 270x91 0xca 0x49 0x6a 28# CHECK: r17 = add(pc, #21) 29 30# Pipelined loop instructions 310x08 0xc4 0xb5 0x60 32# CHECK: p3 = sp1loop0 330x08 0xc4 0xd5 0x60 34# CHECK: p3 = sp2loop0 350x08 0xc4 0xf5 0x60 36# CHECK: p3 = sp3loop0 370xa9 0xc4 0xa0 0x69 38# CHECK: p3 = sp1loop0 390xa9 0xc4 0xc0 0x69 40# CHECK: p3 = sp2loop0 410xa9 0xc4 0xe0 0x69 42# CHECK: p3 = sp3loop0 43 44# Logical operations on predicates 450x01 0xc3 0x02 0x6b 46# CHECK: p1 = and(p3, p2) 470xc1 0xc3 0x12 0x6b 48# CHECK: p1 = and(p2, and(p3, p3)) 490x01 0xc3 0x22 0x6b 50# CHECK: p1 = or(p3, p2) 510xc1 0xc3 0x32 0x6b 52# CHECK: p1 = and(p2, or(p3, p3)) 530x01 0xc3 0x42 0x6b 54# CHECK: p1 = xor(p2, p3) 550xc1 0xc3 0x52 0x6b 56# CHECK: p1 = or(p2, and(p3, p3)) 570x01 0xc2 0x63 0x6b 58# CHECK: p1 = and(p2, !p3) 590xc1 0xc3 0x72 0x6b 60# CHECK: p1 = or(p2, or(p3, p3)) 610xc1 0xc3 0x92 0x6b 62# CHECK: p1 = and(p2, and(p3, !p3)) 630xc1 0xc3 0xb2 0x6b 64# CHECK: p1 = and(p2, or(p3, !p3)) 650x01 0xc0 0xc2 0x6b 66# CHECK: p1 = not(p2) 670xc1 0xc3 0xd2 0x6b 68# CHECK: p1 = or(p2, and(p3, !p3)) 690x01 0xc2 0xe3 0x6b 70# CHECK: p1 = or(p2, !p3) 710xc1 0xc3 0xf2 0x6b 72# CHECK: p1 = or(p2, or(p3, !p3)) 73 74# User control register transfer 750x0d 0xc0 0x35 0x62 76# CHECK: cs1 = r21 770x11 0xc0 0x0d 0x6a 78# CHECK: r17 = cs1 79