[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / insn-sched1.ll
index 7145351da079ec38f5b9445a5299f26cdde68814..2749a8e7cd2f3ab85d483c3bebf4e546f41a0d39 100644 (file)
@@ -1,10 +1,16 @@
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+v6 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=arm-apple-darwin -mattr=+v6 | grep mov | wc -l | grep 3
+; RUN: llc -mtriple=arm-eabi -mattr=+v6 %s -o /dev/null
+; RUN: llc -mtriple=arm-apple-ios -mattr=+v6 %s -o - | FileCheck %s
 
-int %test(int %x) {
-       %tmp = cast int %x to short
-       %tmp2 = tail call int %f( int 1, short %tmp )
-       ret int %tmp2
+define i32 @test(i32 %x) {
+        %tmp = trunc i32 %x to i16              ; <i16> [#uses=1]
+        %tmp2 = call i32 @f( i32 1, i16 %tmp )             ; <i32> [#uses=1]
+        ret i32 %tmp2
 }
 
-declare int %f(int, short)
+declare i32 @f(i32, i16)
+
+; CHECK: mov
+; CHECK: mov
+; CHECK: mov
+; CHECK-NOT: mov
+