1# RUN: llvm-mc -triple hexagon -filetype=obj %s -o - | llvm-objdump -d - | FileCheck %s 2# Hexagon Programmer's Reference Manual 11.1.2 ALU32/PERM 3 4# Combine words in to doublewords 5# CHECK: 11 df 95 f3 6r17 = combine(r31.h, r21.h) 7# CHECK: 11 df b5 f3 8r17 = combine(r31.h, r21.l) 9# CHECK: 11 df d5 f3 10r17 = combine(r31.l, r21.h) 11# CHECK: 11 df f5 f3 12r17 = combine(r31.l, r21.l) 13# CHECK: b0 e2 0f 7c 14r17:16 = combine(#21, #31) 15# CHECK: b0 e2 3f 73 16r17:16 = combine(#21, r31) 17# CHECK: f0 e3 15 73 18r17:16 = combine(r21, #31) 19# CHECK: 10 df 15 f5 20r17:16 = combine(r21, r31) 21 22# Mux 23# CHECK: f1 c3 75 73 24r17 = mux(p3, r21, #31) 25# CHECK: b1 c2 ff 73 26r17 = mux(p3, #21, r31) 27# CHECK: b1 e2 8f 7b 28r17 = mux(p3, #21, #31) 29# CHECK: 71 df 15 f4 30r17 = mux(p3, r21, r31) 31 32# Shift word by 16 33# CHECK: 11 c0 15 70 34r17 = aslh(r21) 35# CHECK: 11 c0 35 70 36r17 = asrh(r21) 37 38# Pack high and low halfwords 39# CHECK: 10 df 95 f5 40r17:16 = packhl(r21, r31) 41