Recommit r310809 with a fix for the spill problem
[llvm-core.git] / test / CodeGen / PowerPC / fabs.ll
blobc8cbd00b4dcf914283e829bd1e48a977e20801ee
1 ; RUN: llc -verify-machineinstrs < %s -mattr=-vsx -mtriple=powerpc-apple-darwin | FileCheck %s
3 define double @fabs(double %f) {
4 ; CHECK-LABEL: fabs:
5 ; CHECK:       ; BB#0:
6 ; CHECK-NEXT:    fabs f1, f1
7 ; CHECK-NEXT:    blr
9   %t = tail call double @fabs( double %f ) readnone
10   ret double %t
13 define float @bitcast_fabs(float %x) {
14 ; CHECK-LABEL: bitcast_fabs:
15 ; CHECK:       ; BB#0:
16 ; CHECK-NEXT:    stfs f1, -8(r1)
17 ; CHECK-NEXT:    nop
18 ; CHECK-NEXT:    nop
19 ; CHECK-NEXT:    lwz r2, -8(r1)
20 ; CHECK-NEXT:    clrlwi r2, r2, 1
21 ; CHECK-NEXT:    stw r2, -4(r1)
22 ; CHECK-NEXT:    lfs f1, -4(r1)
23 ; CHECK-NEXT:    blr
25   %bc1 = bitcast float %x to i32
26   %and = and i32 %bc1, 2147483647
27   %bc2 = bitcast i32 %and to float
28   ret float %bc2