1 ; 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 | count 1
5 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \
6 ; RUN: grep smultt | count 1
7 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v5TE | \
8 ; RUN: grep smlabt | count 1
10 %x = weak global short 0
11 %y = weak global short 0
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
22 int %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
29 int %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