[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / SpeculativeExecution / spec-fp.ll
blob181ce3757d48a3c9cb8d2d793e90ab7f28be1102
1 ; RUN: opt < %s -S -speculative-execution \
2 ; RUN:   -spec-exec-max-speculation-cost 4 -spec-exec-max-not-hoisted 3 \
3 ; RUN:   | FileCheck %s
5 ; CHECK-LABEL: @ifThen_fadd(
6 ; CHECK: fadd
7 ; CHECK: br i1 true
8 define void @ifThen_fadd() {
9   br i1 true, label %a, label %b
12   %x = fadd float undef, undef
13   br label %b
16   ret void
19 ; CHECK-LABEL: @ifThen_fsub(
20 ; CHECK: fsub
21 ; CHECK: br i1 true
22 define void @ifThen_fsub() {
23   br i1 true, label %a, label %b
26   %x = fsub float undef, undef
27   br label %b
30   ret void
33 ; CHECK-LABEL: @ifThen_binary_fneg(
34 ; CHECK: fsub float -0.0
35 ; CHECK: br i1 true
36 define void @ifThen_binary_fneg() {
37   br i1 true, label %a, label %b
40   %x = fsub float -0.0, undef
41   br label %b
44   ret void
47 ; CHECK-LABEL: @ifThen_unary_fneg(
48 ; CHECK: fneg float
49 ; CHECK: br i1 true
50 define void @ifThen_unary_fneg() {
51   br i1 true, label %a, label %b
54   %x = fneg float undef
55   br label %b
58   ret void
61 ; CHECK-LABEL: @ifThen_fmul(
62 ; CHECK: fmul
63 ; CHECK: br i1 true
64 define void @ifThen_fmul() {
65   br i1 true, label %a, label %b
68   %x = fmul float undef, undef
69   br label %b
72   ret void
75 ; CHECK-LABEL: @ifThen_fdiv(
76 ; CHECK: fdiv
77 ; CHECK: br i1 true
78 define void @ifThen_fdiv() {
79   br i1 true, label %a, label %b
82   %x = fdiv float undef, undef
83   br label %b
86   ret void
89 ; CHECK-LABEL: @ifThen_frem(
90 ; CHECK: frem
91 ; CHECK: br i1 true
92 define void @ifThen_frem() {
93   br i1 true, label %a, label %b
96   %x = frem float undef, undef
97   br label %b
100   ret void