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