1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# RUN: llvm-mc -triple hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
2f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Hexagon Programmer's Reference Manual 11.1.1 ALU32/ALU
3f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
4f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Add
5f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: f1 c3 15 b0
6f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = add(r21, #31)
7f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 15 f3
8f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = add(r21, r31)
9f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 55 f6
10f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = add(r21, r31):sat
11f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
12f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# And
13f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: f1 c3 15 76
14f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = and(r21, #31)
15f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: f1 c3 95 76
16f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = or(r21, #31)
17f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 15 f1
18f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = and(r21, r31)
19f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 35 f1
20f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = or(r21, r31)
21f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 75 f1
22f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = xor(r21, r31)
23f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 d5 9f f1
24f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = and(r21, ~r31)
25f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 d5 bf f1
26f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = or(r21, ~r31)
27f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
28f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Nop
29f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 00 c0 00 7f
30f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarnop
31f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
32f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Subtract
33f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: b1 c2 5f 76
34f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = sub(#21, r31)
35f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 35 f3
36f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = sub(r31, r21)
37f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df d5 f6
38f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = sub(r31, r21):sat
39f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
40f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Sign extend
41f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 c0 bf 70
42f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = sxtb(r31)
43f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
44f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Transfer immediate
45f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 15 c0 31 72
46f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17.h = #21
47f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 15 c0 31 71
48f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17.l = #21
49f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: f1 ff 5f 78
50f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = #32767
51f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: f1 ff df 78
52f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = #-1
53f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
54f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Transfer register
55f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 c0 75 70
56f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = r21
57f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
58f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Vector add halfwords
59f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 15 f6
60f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vaddh(r21, r31)
61f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 35 f6
62f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vaddh(r21, r31):sat
63f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 75 f6
64f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vadduh(r21, r31):sat
65f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
66f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Vector average halfwords
67f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 15 f7
68f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vavgh(r21, r31)
69f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 35 f7
70f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vavgh(r21, r31):rnd
71f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 75 f7
72f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vnavgh(r31, r21)
73f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
74f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Vector subtract halfwords
75f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df 95 f6
76f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vsubh(r31, r21)
77f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df b5 f6
78f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vsubh(r31, r21):sat
79f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 df f5 f6
80f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = vsubuh(r31, r21):sat
81f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar
82f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# Zero extend
83f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar# CHECK: 11 c0 d5 70
84f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarr17 = zxth(r21)
85