[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / CodeGenPrepare / X86 / fcmp-sinking.ll
blob94ab74f9e7bf56472e8cce400f0eaec2d98132fb
1 ; RUN: opt %s -codegenprepare -mattr=+soft-float -S | FileCheck %s -check-prefix=CHECK -check-prefix=SOFTFP
2 ; RUN: opt %s -codegenprepare -mattr=-soft-float -S | FileCheck %s -check-prefix=CHECK -check-prefix=HARDFP
4 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
5 target triple = "x86_64-unknown-linux-gnu"
7 ; CHECK-LABEL: @foo
8 ; CHECK:       entry:
9 ; SOFTFP:      fcmp
10 ; HARDFP-NOT:  fcmp
11 ; CHECK:       body:
12 ; SOFTFP-NOT:  fcmp
13 ; HARDFP:      fcmp
14 define void @foo(float %a, float %b) {
15 entry:
16   %c = fcmp oeq float %a, %b
17   br label %head
18 head:
19   %IND = phi i32 [ 0, %entry ], [ %IND.new, %body1 ]
20   %CMP = icmp slt i32 %IND, 1250
21   br i1 %CMP, label %body, label %tail
22 body:
23   br i1 %c, label %body1, label %tail
24 body1:
25   %IND.new = add i32 %IND, 1
26   br label %head
27 tail:
28   ret void