xref: /llvm-project/llvm/test/CodeGen/PowerPC/spe-fastmath.ll (revision 5403c59c608c08c8ecd4303763f08eb046eb5e4d)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu \
3; RUN:   -mattr=+spe |  FileCheck %s
4
5define void @no_fsel(i32 %e) #0 {
6; CHECK-LABEL: no_fsel:
7; CHECK:       # %bb.0: # %entry
8; CHECK-NEXT:    li 4, .LCPI0_0@l
9; CHECK-NEXT:    lis 5, .LCPI0_0@ha
10; CHECK-NEXT:    evlddx 4, 5, 4
11; CHECK-NEXT:    efdcfui 3, 3
12; CHECK-NEXT:    efdmul 5, 3, 3
13; CHECK-NEXT:    efdcmpeq 0, 5, 4
14; CHECK-NEXT:    ble 0, .LBB0_2
15; CHECK-NEXT:  # %bb.1: # %entry
16; CHECK-NEXT:    evor 3, 4, 4
17; CHECK-NEXT:  .LBB0_2: # %entry
18; CHECK-NEXT:    efdctsiz 3, 3
19; CHECK-NEXT:    sth 3, 0(3)
20; CHECK-NEXT:    blr
21entry:
22  %conv = uitofp i32 %e to double
23  %mul = fmul double %conv, %conv
24  %tobool = fcmp une double %mul, 0.000000e+00
25  %cond = select i1 %tobool, double %conv, double 0.000000e+00
26  %conv3 = fptosi double %cond to i16
27  store i16 %conv3, ptr undef
28  ret void
29}
30
31attributes #0 = { "no-infs-fp-math"="true" "no-nans-fp-math"="true" }
32