blob: 4ea61f386c063c1a15e0634576ca58cc58a40b3e [file] [log] [blame]
Reid Spencer1c0c94d2007-04-15 19:11:47 +00001; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm
2; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE
3; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \
4; RUN: grep smulbt | wc -l | grep 1
5; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \
6; RUN: grep smultt | wc -l | grep 1
7; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \
8; RUN: grep smlabt | wc -l | grep 1
Evan Cheng02b985c2007-01-19 09:20:23 +00009
10%x = weak global short 0
11%y = weak global short 0
12
13int %f1(int %y) {
14 %tmp = load short* %x
15 %tmp1 = add short %tmp, 2
16 %tmp2 = cast short %tmp1 to int
17 %tmp3 = shr int %y, ubyte 16
18 %tmp4 = mul int %tmp2, %tmp3
19 ret int %tmp4
20}
21
22int %f2(int %x, int %y) {
23 %tmp1 = shr int %x, ubyte 16
24 %tmp3 = shr int %y, ubyte 16
25 %tmp4 = mul int %tmp3, %tmp1
26 ret int %tmp4
27}
28
29int %f3(int %a, short %x, int %y) {
30 %tmp = cast short %x to int
31 %tmp2 = shr int %y, ubyte 16
32 %tmp3 = mul int %tmp2, %tmp
33 %tmp5 = add int %tmp3, %a
34 ret int %tmp5
35}