diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-10-11 23:16:21 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-10-11 23:16:21 +0000 |
commit | b7c2962d201ba7d0eeb6ad6b2c932997a577f15a (patch) | |
tree | da72c7637331052b633bff7c2060017d3fc7f1cd /llvm/test | |
parent | d06ab4f09e929a68b8c055755184b04ac32e1a88 (diff) | |
download | bcm5719-llvm-b7c2962d201ba7d0eeb6ad6b2c932997a577f15a.tar.gz bcm5719-llvm-b7c2962d201ba7d0eeb6ad6b2c932997a577f15a.zip |
MC machine encoding for simple aritmetic instructions that use a shifted
register operand.
llvm-svn: 116259
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/MC/ARM/simple-encoding.ll | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/llvm/test/MC/ARM/simple-encoding.ll b/llvm/test/MC/ARM/simple-encoding.ll index 2da4e74c89a..4c23c7e7f26 100644 --- a/llvm/test/MC/ARM/simple-encoding.ll +++ b/llvm/test/MC/ARM/simple-encoding.ll @@ -8,8 +8,8 @@ define i32 @foo(i32 %a, i32 %b) nounwind ssp { entry: ; CHECK: foo -; CHECK: 0xf0,0x00,0xf0,0x07 -; CHECK: 0x1e,0xff,0x2f,0xe1 +; CHECK: trap @ encoding: [0xf0,0x00,0xf0,0x07] +; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1] tail call void @llvm.trap() ret i32 undef @@ -18,9 +18,21 @@ entry: define i32 @f2(i32 %a, i32 %b) nounwind readnone ssp { entry: ; CHECK: f2 -; CHECK: 0x00,0x00,0x81,0xe0 -; CHECK: 0x1e,0xff,0x2f,0xe1 +; CHECK: add r0, r1, r0 @ encoding: [0x00,0x00,0x81,0xe0] +; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1] %add = add nsw i32 %b, %a ret i32 %add } + + +define i32 @f3(i32 %a, i32 %b) nounwind readnone ssp { +entry: +; CHECK: f3 +; CHECK: add r0, r0, r1, lsl #3 @ encoding: [0x81,0x01,0x80,0xe0] +; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1] + %mul = shl i32 %b, 3 + %add = add nsw i32 %mul, %a + ret i32 %add +} + declare void @llvm.trap() nounwind |