Home | History | Annotate | Download | only in instructions
      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
      6 p3 = !fastcorner9(p2, p1)
      7 # CHECK: 91 e3 02 6b
      8 p1 = fastcorner9(p2, p3)
      9 
     10 # Logical reductions on predicates
     11 # CHECK: 01 c0 82 6b
     12 p1 = any8(p2)
     13 # CHECK: 01 c0 a2 6b
     14 p1 = all8(p2)
     15 
     16 # Looping instructions
     17 # CHECK: 00 c0 15 60
     18 loop0(0, r21)
     19 # CHECK: 00 c0 35 60
     20 loop1(0, r21)
     21 # CHECK: 60 c0 00 69
     22 loop0(0, #12)
     23 # CHECK: 60 c0 20 69
     24 loop1(0, #12)
     25 
     26 # Add to PC
     27 # CHECK: 91 ca 49 6a
     28 r17 = add(pc, #21)
     29 
     30 # Pipelined loop instructions
     31 # CHECK: 00 c0 b5 60
     32 p3 = sp1loop0(0, r21)
     33 # CHECK: 00 c0 d5 60
     34 p3 = sp2loop0(0, r21)
     35 # CHECK: 00 c0 f5 60
     36 p3 = sp3loop0(0, r21)
     37 # CHECK: a1 c0 a0 69
     38 p3 = sp1loop0(0, #21)
     39 # CHECK: a1 c0 c0 69
     40 p3 = sp2loop0(0, #21)
     41 # CHECK: a1 c0 e0 69
     42 p3 = sp3loop0(0, #21)
     43 
     44 # Logical operations on predicates
     45 # CHECK: 01 c3 02 6b
     46 p1 = and(p3, p2)
     47 # CHECK: c1 c3 12 6b
     48 p1 = and(p2, and(p3, p3))
     49 # CHECK: 01 c3 22 6b
     50 p1 = or(p3, p2)
     51 # CHECK: c1 c3 32 6b
     52 p1 = and(p2, or(p3, p3))
     53 # CHECK: 01 c3 42 6b
     54 p1 = xor(p2, p3)
     55 # CHECK: c1 c3 52 6b
     56 p1 = or(p2, and(p3, p3))
     57 # CHECK: 01 c2 63 6b
     58 p1 = and(p2, !p3)
     59 # CHECK: c1 c3 72 6b
     60 p1 = or(p2, or(p3, p3))
     61 # CHECK: c1 c3 92 6b
     62 p1 = and(p2, and(p3, !p3))
     63 # CHECK: c1 c3 b2 6b
     64 p1 = and(p2, or(p3, !p3))
     65 # CHECK: 01 c0 c2 6b
     66 p1 = not(p2)
     67 # CHECK: c1 c3 d2 6b
     68 p1 = or(p2, and(p3, !p3))
     69 # CHECK: 01 c2 e3 6b
     70 p1 = or(p2, !p3)
     71 # CHECK: c1 c3 f2 6b
     72 p1 = or(p2, or(p3, !p3))
     73 
     74 # User control register transfer
     75 # CHECK: 0d c0 35 62
     76 cs1 = r21
     77 # CHECK: 11 c0 0d 6a
     78 r17 = cs1
     79