diff options
author | Akira Hatanaka <ahatanak@gmail.com> | 2011-08-17 02:05:42 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanak@gmail.com> | 2011-08-17 02:05:42 +0000 |
commit | bb15e117d328bd991b0723dd1b586c8437d9dced (patch) | |
tree | 87780965eb2b837e47dc2a2e17763b2de7277350 /test | |
parent | a69179d7689bf302f3c7e04ee83c460e69b96b94 (diff) | |
download | external_llvm-bb15e117d328bd991b0723dd1b586c8437d9dced.zip external_llvm-bb15e117d328bd991b0723dd1b586c8437d9dced.tar.gz external_llvm-bb15e117d328bd991b0723dd1b586c8437d9dced.tar.bz2 |
Add support for ext and ins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137804 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Mips/extins.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/extins.ll b/test/CodeGen/Mips/extins.ll new file mode 100644 index 0000000..69f53e5 --- /dev/null +++ b/test/CodeGen/Mips/extins.ll @@ -0,0 +1,21 @@ +; RUN: llc -march=mips -mcpu=4ke < %s | FileCheck %s + +define i32 @ext0_5_9(i32 %s, i32 %pos, i32 %sz) nounwind readnone { +entry: +; CHECK: ext ${{[0-9]+}}, $4, 5, 9 + %shr = lshr i32 %s, 5 + %and = and i32 %shr, 511 + ret i32 %and +} + +define void @ins2_5_9(i32 %s, i32* nocapture %d) nounwind { +entry: +; CHECK: ins ${{[0-9]+}}, $4, 5, 9 + %and = shl i32 %s, 5 + %shl = and i32 %and, 16352 + %tmp3 = load i32* %d, align 4 + %and5 = and i32 %tmp3, -16353 + %or = or i32 %and5, %shl + store i32 %or, i32* %d, align 4 + ret void +} |