1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mattr=-vsx -march=ppc32 -mtriple=powerpc-apple-darwin | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine double @fabs(double %f) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fabs: 5*9880d681SAndroid Build Coastguard Worker; CHECK: ; BB#0: 6*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fabs f1, f1 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: blr 8*9880d681SAndroid Build Coastguard Worker; 9*9880d681SAndroid Build Coastguard Worker %t = tail call double @fabs( double %f ) readnone 10*9880d681SAndroid Build Coastguard Worker ret double %t 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine float @bitcast_fabs(float %x) { 14*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bitcast_fabs: 15*9880d681SAndroid Build Coastguard Worker; CHECK: ; BB#0: 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: stfs f1, -8(r1) 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nop 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: nop 19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: lwz r2, -8(r1) 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: clrlwi r2, r2, 1 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: stw r2, -4(r1) 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: lfs f1, -4(r1) 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: blr 24*9880d681SAndroid Build Coastguard Worker; 25*9880d681SAndroid Build Coastguard Worker %bc1 = bitcast float %x to i32 26*9880d681SAndroid Build Coastguard Worker %and = and i32 %bc1, 2147483647 27*9880d681SAndroid Build Coastguard Worker %bc2 = bitcast i32 %and to float 28*9880d681SAndroid Build Coastguard Worker ret float %bc2 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31