OSDN Git Service

use FileCheck; add test for disguised fabs
authorSanjay Patel <spatel@rotateright.com>
Thu, 21 Apr 2016 20:58:58 +0000 (20:58 +0000)
committerSanjay Patel <spatel@rotateright.com>
Thu, 21 Apr 2016 20:58:58 +0000 (20:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267051 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/PowerPC/fabs.ll

index 36aa23d..5a17c83 100644 (file)
@@ -1,7 +1,30 @@
-; RUN: llc < %s -mattr=-vsx -march=ppc32 -mtriple=powerpc-apple-darwin | grep "fabs f1, f1"
+; RUN: llc < %s -mattr=-vsx -march=ppc32 -mtriple=powerpc-apple-darwin | FileCheck %s
 
 define double @fabs(double %f) {
-entry:
-       %tmp2 = tail call double @fabs( double %f ) readnone    ; <double> [#uses=1]
-       ret double %tmp2
+; CHECK-LABEL: fabs:
+; CHECK:       ; BB#0:
+; CHECK-NEXT:    fabs f1, f1
+; CHECK-NEXT:    blr
+;
+  %t = tail call double @fabs( double %f ) readnone
+  ret double %t
 }
+
+define float @bitcast_fabs(float %x) {
+; CHECK-LABEL: bitcast_fabs:
+; CHECK:       ; BB#0:
+; CHECK-NEXT:    stfs f1, -8(r1)
+; CHECK-NEXT:    nop
+; CHECK-NEXT:    nop
+; CHECK-NEXT:    lwz r2, -8(r1)
+; CHECK-NEXT:    clrlwi r2, r2, 1
+; CHECK-NEXT:    stw r2, -4(r1)
+; CHECK-NEXT:    lfs f1, -4(r1)
+; CHECK-NEXT:    blr
+;
+  %bc1 = bitcast float %x to i32
+  %and = and i32 %bc1, 2147483647
+  %bc2 = bitcast i32 %and to float
+  ret float %bc2
+}
+