X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FARM%2Finlineasm-imm-thumb.ll;h=80be870743f5028081a7dff8f56d337eec7548a5;hb=e970b795a27d16c720bf4e3ff030eea241784eb4;hp=2c872e7e310fd7605800671160c984a6afb1ed36;hpb=bf6396bed0597238110aad5b680fd18a4f8769fa;p=oota-llvm.git diff --git a/test/CodeGen/ARM/inlineasm-imm-thumb.ll b/test/CodeGen/ARM/inlineasm-imm-thumb.ll index 2c872e7e310..80be870743f 100644 --- a/test/CodeGen/ARM/inlineasm-imm-thumb.ll +++ b/test/CodeGen/ARM/inlineasm-imm-thumb.ll @@ -1,43 +1,20 @@ -; RUN: llvm-as < %s | llc -march=thumb +; RUN: llc -mtriple=thumbv5-none-linux-gnueabi -no-integrated-as %s -o /dev/null -; Test Thumb-mode "I" constraint, for ADD immediate. -define i32 @testI(i32 %x) { - %y = call i32 asm "add $0, $1, $2", "=r,r,I"( i32 %x, i32 255 ) nounwind - ret i32 %y +; Test thumb-mode "I" constraint, for any Data Processing immediate. +define void @testI() { + tail call void asm sideeffect ".word $0", "I"( i32 255 ) nounwind + ret void } -; Test Thumb-mode "J" constraint, for negated ADD immediates. +; Test thumb-mode "J" constraint, for compatibility with unknown use in GCC. define void @testJ() { - tail call void asm sideeffect ".word $0", "J"( i32 -255 ) nounwind + tail call void asm sideeffect ".word $0", "J"( i32 -254 ) nounwind ret void } -; Test Thumb-mode "K" constraint, for compatibility with GCC's internal use. -define void @testK() { - tail call void asm sideeffect ".word $0", "K"( i32 65280 ) nounwind +; Test thumb-mode "L" constraint, for negated Data Processing immediates. +define void @testL() { + tail call void asm sideeffect ".word $0", "L"( i32 -7 ) nounwind ret void } -; Test Thumb-mode "L" constraint, for 3-operand ADD immediates. -define i32 @testL(i32 %x) { - %y = call i32 asm "add $0, $1, $2", "=r,r,L"( i32 %x, i32 -7 ) nounwind - ret i32 %y -} - -; Test Thumb-mode "M" constraint, for "ADD r = sp + imm". -define i32 @testM() { - %y = call i32 asm "add $0, sp, $1", "=r,M"( i32 1020 ) nounwind - ret i32 %y -} - -; Test Thumb-mode "N" constraint, for values between 0 and 31. -define i32 @testN(i32 %x) { - %y = call i32 asm "lsl $0, $1, $2", "=r,r,N"( i32 %x, i32 31 ) nounwind - ret i32 %y -} - -; Test Thumb-mode "O" constraint, for "ADD sp = sp + imm". -define void @testO() { - tail call void asm sideeffect "add sp, sp, $0; add sp, sp, $1", "O,O"( i32 -508, i32 508 ) nounwind - ret void -}