From: Colin LeMahieu Date: Mon, 8 Dec 2014 17:01:18 +0000 (+0000) Subject: [Hexagon] Adding packhl instruction. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5c7adadf6dfff543de77390dfa305fca8c23f839;p=oota-llvm.git [Hexagon] Adding packhl instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223664 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Hexagon/HexagonInstrInfo.td b/lib/Target/Hexagon/HexagonInstrInfo.td index 14dfad1044d..3158adcfa5e 100644 --- a/lib/Target/Hexagon/HexagonInstrInfo.td +++ b/lib/Target/Hexagon/HexagonInstrInfo.td @@ -204,6 +204,12 @@ def: BinOp32_pat; def: BinOp32_pat; def: BinOp32_pat; +// A few special cases producing register pairs: +let OutOperandList = (outs DoubleRegs:$Rd), hasNewValue = 0, + isCodeGenOnly = 0 in { + def S2_packhl : T_ALU32_3op <"packhl", 0b101, 0b100, 0, 0>; +} + let hasSideEffects = 0, hasNewValue = 1, isCompare = 1, InputType = "reg" in class T_ALU32_3op_cmp MinOp, bit IsNeg, bit IsComm> : ALU32_rr<(outs PredRegs:$Pd), (ins IntRegs:$Rs, IntRegs:$Rt), diff --git a/test/MC/Disassembler/Hexagon/alu32_perm.txt b/test/MC/Disassembler/Hexagon/alu32_perm.txt index fce6f8dc68a..2f1d1b65067 100644 --- a/test/MC/Disassembler/Hexagon/alu32_perm.txt +++ b/test/MC/Disassembler/Hexagon/alu32_perm.txt @@ -22,3 +22,5 @@ # CHECK: r17 = aslh(r21) 0x11 0xc0 0x35 0x70 # CHECK: r17 = asrh(r21) +0x10 0xdf 0x95 0xf5 +# CHECK: r17:16 = packhl(r21, r31)