-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "strh .*\[.*], #-4" | wc -l | grep 1 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "str .*\[.*]," | wc -l | grep 1
+; RUN: llvm-as < %s | llc -march=arm | \
+; RUN: grep {strh .*\\\[.*\], #-4} | count 1
+; RUN: llvm-as < %s | llc -march=arm | \
+; RUN: grep {str .*\\\[.*\],} | count 1
-short %test1(int *%X, short *%A) {
- %Y = load int* %X
- %tmp1 = cast int %Y to short
- store short %tmp1, short* %A
- %tmp2 = cast short* %A to short
- %tmp3 = sub short %tmp2, 4
- ret short %tmp3
+define i16 @test1(i32* %X, i16* %A) {
+ %Y = load i32* %X ; <i32> [#uses=1]
+ %tmp1 = trunc i32 %Y to i16 ; <i16> [#uses=1]
+ store i16 %tmp1, i16* %A
+ %tmp2 = ptrtoint i16* %A to i16 ; <i16> [#uses=1]
+ %tmp3 = sub i16 %tmp2, 4 ; <i16> [#uses=1]
+ ret i16 %tmp3
}
-int %test2(int *%X, int *%A) {
- %Y = load int* %X
- store int %Y, int* %A
- %tmp1 = cast int* %A to int
- %tmp2 = sub int %tmp1, 4
- ret int %tmp2
+define i32 @test2(i32* %X, i32* %A) {
+ %Y = load i32* %X ; <i32> [#uses=1]
+ store i32 %Y, i32* %A
+ %tmp1 = ptrtoint i32* %A to i32 ; <i32> [#uses=1]
+ %tmp2 = sub i32 %tmp1, 4 ; <i32> [#uses=1]
+ ret i32 %tmp2
}