Use FileCheck for test
authorMatthias Braun <matze@braunis.de>
Mon, 13 Apr 2015 18:47:19 +0000 (18:47 +0000)
committerMatthias Braun <matze@braunis.de>
Mon, 13 Apr 2015 18:47:19 +0000 (18:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234774 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/Mips/dagcombine_crash.ll

index 1fdf09b26dd5adebddb77bdfefd43a2c6951ab07..6fcf2b4e68b4efaa18584dbe900103d79d63a4cd 100644 (file)
@@ -1,21 +1,25 @@
-; RUN: llc -o - %s
+; RUN: llc -o - %s | FileCheck %s
 ; The selection DAG select(select()) normalisation crashed for different types
 ; on the condition inputs.
 target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
 target triple = "mips--"
 
-define i64 @foobar(double %a) #0 {
+; CHECK-LABEL: foobar
+; CHECK: sltiu ${{[0-9]*}}, ${{[0-9]*}}, 42
+; CHECK: sltiu ${{[0-9]*}}, ${{[0-9]*}}, 23
+; CHECK: and ${{[0-9]*}}, ${{[0-9]*}}, ${{[0-9]*}}
+; CHECK: sltu ${{[0-9]*}}, ${{[0-9]*}}, ${{[0-9]*}}
+; CHECK: addiu ${{[0-9]*}}, ${{[0-9]*}}, -1
+; CHECK: movn ${{[0-9]*}}, ${{[0-9]*}}, ${{[0-9]*}}
+; CHECK: jr $ra
+; CHECK: move ${{[0-9]*}}, ${{[0-9]*}}
+define i64 @foobar(i32 %arg) #0 {
 entry:
-  %0 = bitcast double %a to i64
-  %trunc = trunc i64 %0 to i32
-  %and = and i32 %trunc, 32767
-  %sub = add nsw i32 %and, -16383
-  %cmp = icmp ugt i32 %and, 16382
-  %and5 = and i32 %trunc, 32768
-  %tobool = icmp eq i32 %and5, 0
-  %or = and i1 %cmp, %tobool
-  %cmp6 = icmp ugt i32 %sub, 64
-  %sext = sext i1 %cmp6 to i64
-  %retval.0 = select i1 %or, i64 %sext, i64 0
+  %cmp0 = icmp ult i32 %arg, 23
+  %cmp1 = icmp ult i32 %arg, 42
+  %and = and i1 %cmp0, %cmp1
+  %cmp2 = icmp ugt i32 %arg, 0
+  %sext = sext i1 %cmp1 to i64
+  %retval.0 = select i1 %and, i64 %sext, i64 0
   ret i64 %retval.0
 }