diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-02-01 00:38:56 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-02-01 00:38:56 +0000 |
| commit | 667ff4832ef1bc69f164523ab63e8fb713c9f8db (patch) | |
| tree | 1f48757441a35c51e947627d9eca86e9a2f0273d | |
| parent | b7a08adae657b26d2ee753cecb8712f148526bab (diff) | |
| download | bcm5719-llvm-667ff4832ef1bc69f164523ab63e8fb713c9f8db.tar.gz bcm5719-llvm-667ff4832ef1bc69f164523ab63e8fb713c9f8db.zip | |
new testcase
llvm-svn: 33731
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll b/llvm/test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll new file mode 100644 index 00000000000..6f51864352b --- /dev/null +++ b/llvm/test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll @@ -0,0 +1,25 @@ +; RUN: llvm-as < %s | llc -march=ppc32 && +; RUN: llvm-as < %s | llc -march=ppc64 + +; Test two things: 1) that a frameidx can be rewritten in an inline asm +; 2) that inline asms can handle reg+imm addr modes. + + %struct.A = type { i32, i32 } + +implementation ; Functions: + +define void @test1() { +entry: + %Out = alloca %struct.A, align 4 ; <%struct.A*> [#uses=1] + %tmp2 = getelementptr %struct.A* %Out, i32 0, i32 1 + %tmp5 = call i32 asm "lwbrx $0, $1", "=r,m"(i32* %tmp2 ) + ret void +} + +define void @test2() { +entry: + %Out = alloca %struct.A, align 4 ; <%struct.A*> [#uses=1] + %tmp2 = getelementptr %struct.A* %Out, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp5 = call i32 asm "lwbrx $0, $2, $1", "=r,r,bO,m"( i8* null, i32 0, i32* %tmp2 ) ; <i32> [#uses=0] + ret void +} |

