X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FARM%2Fsmul.ll;h=686d791ce60dd251de24aafbdf1a37c59715fc08;hb=1e45487dfde9de304f28e1fb49b3c15a036b9c00;hp=4ea61f386c063c1a15e0634576ca58cc58a40b3e;hpb=1c0c94d6df30c3f3d8f0871caa7947def032c311;p=oota-llvm.git diff --git a/test/CodeGen/ARM/smul.ll b/test/CodeGen/ARM/smul.ll index 4ea61f386c0..686d791ce60 100644 --- a/test/CodeGen/ARM/smul.ll +++ b/test/CodeGen/ARM/smul.ll @@ -1,35 +1,36 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \ -; RUN: grep smulbt | wc -l | grep 1 -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \ -; RUN: grep smultt | wc -l | grep 1 -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \ -; RUN: grep smlabt | wc -l | grep 1 +; RUN: llc < %s -march=arm -mcpu=generic +; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -%x = weak global short 0 -%y = weak global short 0 +@x = weak global i16 0 ; [#uses=1] +@y = weak global i16 0 ; [#uses=0] -int %f1(int %y) { - %tmp = load short* %x - %tmp1 = add short %tmp, 2 - %tmp2 = cast short %tmp1 to int - %tmp3 = shr int %y, ubyte 16 - %tmp4 = mul int %tmp2, %tmp3 - ret int %tmp4 +define i32 @f1(i32 %y) { +; CHECK: f1 +; CHECK: smulbt + %tmp = load i16* @x ; [#uses=1] + %tmp1 = add i16 %tmp, 2 ; [#uses=1] + %tmp2 = sext i16 %tmp1 to i32 ; [#uses=1] + %tmp3 = ashr i32 %y, 16 ; [#uses=1] + %tmp4 = mul i32 %tmp2, %tmp3 ; [#uses=1] + ret i32 %tmp4 } -int %f2(int %x, int %y) { - %tmp1 = shr int %x, ubyte 16 - %tmp3 = shr int %y, ubyte 16 - %tmp4 = mul int %tmp3, %tmp1 - ret int %tmp4 +define i32 @f2(i32 %x, i32 %y) { +; CHECK: f2 +; CHECK: smultt + %tmp1 = ashr i32 %x, 16 ; [#uses=1] + %tmp3 = ashr i32 %y, 16 ; [#uses=1] + %tmp4 = mul i32 %tmp3, %tmp1 ; [#uses=1] + ret i32 %tmp4 } -int %f3(int %a, short %x, int %y) { - %tmp = cast short %x to int - %tmp2 = shr int %y, ubyte 16 - %tmp3 = mul int %tmp2, %tmp - %tmp5 = add int %tmp3, %a - ret int %tmp5 +define i32 @f3(i32 %a, i16 %x, i32 %y) { +; CHECK: f3 +; CHECK: smlabt + %tmp = sext i16 %x to i32 ; [#uses=1] + %tmp2 = ashr i32 %y, 16 ; [#uses=1] + %tmp3 = mul i32 %tmp2, %tmp ; [#uses=1] + %tmp5 = add i32 %tmp3, %a ; [#uses=1] + ret i32 %tmp5 } +