The ARM disassembler did not handle the alignment correctly for VLD*DUP* instructions
[oota-llvm.git] / test / CodeGen / ARM / ifcvt2.ll
index ce57d736c167721eea48561fb4e65ec9783034d7..7b9d0cf32cff07f1fd18378f7bff4e23630bf916 100644 (file)
@@ -1,9 +1,8 @@
-; RUN: llc < %s -march=arm
-; RUN: llc < %s -march=arm | grep bxlt | count 1
-; RUN: llc < %s -march=arm | grep bxgt | count 1
-; RUN: llc < %s -march=arm | grep bxge | count 1
+; RUN: llc < %s -march=arm | FileCheck %s
 
 define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) {
+; CHECK: t1:
+; CHECK: bxlt lr
        %tmp2 = icmp sgt i32 %c, 10
        %tmp5 = icmp slt i32 %d, 4
        %tmp8 = or i1 %tmp5, %tmp2
@@ -20,6 +19,13 @@ UnifiedReturnBlock:
 }
 
 define i32 @t2(i32 %a, i32 %b, i32 %c, i32 %d) {
+; CHECK: t2:
+; CHECK: bxgt lr
+; CHECK: cmp
+; CHECK: addge
+; CHECK: subge
+; CHECK-NOT: bxge lr
+; CHECK: bx lr
        %tmp2 = icmp sgt i32 %c, 10
        %tmp5 = icmp slt i32 %d, 4
        %tmp8 = and i1 %tmp5, %tmp2