xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/fabs.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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