116 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -enable-ppc-gen-scalar-mass -O3 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK-LNX %s3; RUN: llc -enable-ppc-gen-scalar-mass -O3 -mcpu=ppc -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefix=CHECK-AIX %s4 5define void @cos_f64(ptr %arg) {6; CHECK-LNX-LABEL: cos_f64:7; CHECK-LNX: # %bb.0: # %bb8; CHECK-LNX-NEXT: mflr 09; CHECK-LNX-NEXT: stdu 1, -32(1)10; CHECK-LNX-NEXT: std 0, 48(1)11; CHECK-LNX-NEXT: .cfi_def_cfa_offset 3212; CHECK-LNX-NEXT: .cfi_offset lr, 1613; CHECK-LNX-NEXT: addis 3, 2, .LCPI0_0@toc@ha14; CHECK-LNX-NEXT: lfs 1, .LCPI0_0@toc@l(3)15; CHECK-LNX-NEXT: bl __xl_cos_finite16; CHECK-LNX-NEXT: nop17; CHECK-LNX-NEXT: xssqrtdp 0, 018; CHECK-LNX-NEXT: xsmuldp 0, 0, 119; CHECK-LNX-NEXT: .p2align 420; CHECK-LNX-NEXT: .LBB0_1: # %bb221; CHECK-LNX-NEXT: #22; CHECK-LNX-NEXT: stfd 0, 0(3)23; CHECK-LNX-NEXT: b .LBB0_124;25; CHECK-AIX-LABEL: cos_f64:26; CHECK-AIX: # %bb.0: # %bb27; CHECK-AIX-NEXT: mflr 028; CHECK-AIX-NEXT: stwu 1, -64(1)29; CHECK-AIX-NEXT: stw 0, 72(1)30; CHECK-AIX-NEXT: stfd 31, 56(1) # 8-byte Folded Spill31; CHECK-AIX-NEXT: bl .sqrt[PR]32; CHECK-AIX-NEXT: nop33; CHECK-AIX-NEXT: lwz 3, L..C0(2) # %const.034; CHECK-AIX-NEXT: fmr 31, 135; CHECK-AIX-NEXT: lfs 0, 0(3)36; CHECK-AIX-NEXT: fmr 1, 037; CHECK-AIX-NEXT: bl .__xl_cos_finite[PR]38; CHECK-AIX-NEXT: nop39; CHECK-AIX-NEXT: fmul 0, 31, 140; CHECK-AIX-NEXT: L..BB0_1: # %bb241; CHECK-AIX-NEXT: #42; CHECK-AIX-NEXT: stfd 0, 0(3)43; CHECK-AIX-NEXT: b L..BB0_144bb:45 %i1 = getelementptr i8, ptr %arg, i64 undef46 br label %bb247 48bb2:49 %i3 = getelementptr inbounds i8, ptr %i1, i64 undef50 store double undef, ptr %i3, align 851 %i7 = tail call fast double @llvm.sqrt.f64(double undef)52 %i8 = fmul fast double undef, 0x401921FB54442D2853 %i9 = tail call fast double @llvm.cos.f64(double %i8) #254 %i10 = fmul fast double %i7, %i955 store double %i10, ptr %i1, align 856 br label %bb257}58 59define void @log_f64(ptr %arg) {60; CHECK-LNX-LABEL: log_f64:61; CHECK-LNX: # %bb.0: # %bb62; CHECK-LNX-NEXT: mflr 063; CHECK-LNX-NEXT: stdu 1, -32(1)64; CHECK-LNX-NEXT: std 0, 48(1)65; CHECK-LNX-NEXT: .cfi_def_cfa_offset 3266; CHECK-LNX-NEXT: .cfi_offset lr, 1667; CHECK-LNX-NEXT: addis 3, 2, .LCPI1_0@toc@ha68; CHECK-LNX-NEXT: lfs 1, .LCPI1_0@toc@l(3)69; CHECK-LNX-NEXT: bl __xl_log_finite70; CHECK-LNX-NEXT: nop71; CHECK-LNX-NEXT: xssqrtdp 0, 072; CHECK-LNX-NEXT: xsmuldp 0, 0, 173; CHECK-LNX-NEXT: .p2align 474; CHECK-LNX-NEXT: .LBB1_1: # %bb275; CHECK-LNX-NEXT: #76; CHECK-LNX-NEXT: stfd 0, 0(3)77; CHECK-LNX-NEXT: b .LBB1_178;79; CHECK-AIX-LABEL: log_f64:80; CHECK-AIX: # %bb.0: # %bb81; CHECK-AIX-NEXT: mflr 082; CHECK-AIX-NEXT: stwu 1, -64(1)83; CHECK-AIX-NEXT: stw 0, 72(1)84; CHECK-AIX-NEXT: stfd 31, 56(1) # 8-byte Folded Spill85; CHECK-AIX-NEXT: bl .sqrt[PR]86; CHECK-AIX-NEXT: nop87; CHECK-AIX-NEXT: lwz 3, L..C1(2) # %const.088; CHECK-AIX-NEXT: fmr 31, 189; CHECK-AIX-NEXT: lfs 0, 0(3)90; CHECK-AIX-NEXT: fmr 1, 091; CHECK-AIX-NEXT: bl .__xl_log_finite[PR]92; CHECK-AIX-NEXT: nop93; CHECK-AIX-NEXT: fmul 0, 31, 194; CHECK-AIX-NEXT: L..BB1_1: # %bb295; CHECK-AIX-NEXT: #96; CHECK-AIX-NEXT: stfd 0, 0(3)97; CHECK-AIX-NEXT: b L..BB1_198bb:99 %i1 = getelementptr i8, ptr %arg, i64 undef100 br label %bb2101 102bb2:103 %i3 = getelementptr inbounds i8, ptr %i1, i64 undef104 store double undef, ptr %i3, align 8105 %i7 = tail call fast double @llvm.sqrt.f64(double undef)106 %i8 = fmul fast double undef, 0x401921FB54442D28107 %i9 = tail call fast double @llvm.log.f64(double %i8) #2108 %i10 = fmul fast double %i7, %i9109 store double %i10, ptr %i1, align 8110 br label %bb2111}112 113declare double @llvm.sqrt.f64(double)114declare double @llvm.cos.f64(double)115declare double @llvm.log.f64(double)116