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