ARM: Fix incorrect pack pattern for thumb2
authorJim Grosbach <grosbach@apple.com>
Tue, 9 Jul 2013 22:59:22 +0000 (22:59 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 9 Jul 2013 22:59:22 +0000 (22:59 +0000)
commit97c37bb4d4ae5e505350091e520a1354069941e0
treeadc2a90a1ecc0d70e7d18e0dd0031e4f519b0444
parent46e11c4c97fe1c424241e4098801456303a5c86e
ARM: Fix incorrect pack pattern for thumb2

Propagate the fix from r185712 to Thumb2 codegen as well. Original
commit message applies here as well:

A "pkhtb x, x, y asr #num" uses the lower 16 bits of "y asr #num" and
packs them in the bottom half of "x". An arithmetic and logic shift are
only equivalent in this context if the shift amount is 16. We would be
shifting in ones into the bottom 16bits instead of zeros if "y" is
negative.

rdar://14338767

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185982 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrThumb2.td
test/CodeGen/Thumb2/thumb2-pack.ll