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