42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O0 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s3 4; xscvdpsxds should NOT be emitted, since it saturates the result down to i64.5; We can't use friz here because it may return -0.0 where the original code doesn't.6 7define float @f_i128_f(float %v) nounwind {8; CHECK-LABEL: f_i128_f:9; CHECK: # %bb.0: # %entry10; CHECK-NEXT: mflr 011; CHECK-NEXT: stdu 1, -32(1)12; CHECK-NEXT: std 0, 48(1)13; CHECK-NEXT: bl __fixsfti14; CHECK-NEXT: nop15; CHECK-NEXT: bl __floattisf16; CHECK-NEXT: nop17; CHECK-NEXT: addi 1, 1, 3218; CHECK-NEXT: ld 0, 16(1)19; CHECK-NEXT: mtlr 020; CHECK-NEXT: blr21entry:22 %a = fptosi float %v to i12823 %b = sitofp i128 %a to float24 ret float %b25}26 27; NSZ, so it's safe to friz.28 29define float @f_i128_fi_nsz(float %v) #0 {30; CHECK-LABEL: f_i128_fi_nsz:31; CHECK: # %bb.0: # %entry32; CHECK-NEXT: xsrdpiz 1, 133; CHECK-NEXT: blr34entry:35 %a = fptosi float %v to i12836 %b = sitofp i128 %a to float37 ret float %b38}39 40attributes #0 = { "no-signed-zeros-fp-math"="true" }41 42