[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / NewGVN / propagate-ir-flags.ll
blobf8904e87582bdaf86948aabb79ef6f490672604b
1 ; RUN: opt < %s -newgvn -S | FileCheck %s
3 ; CHECK-LABEL: func_fast
4 ; CHECK:       fadd fast double
5 ; CHECK-NEXT:  store
6 ; CHECK-NEXT:  ret
7 define double @func_fast(double %a, double %b) {
8 entry:
9   %a.addr = alloca double, align 8
10   %add = fadd fast double %b, 3.000000e+00
11   store double %add, double* %a.addr, align 8
12   %load_add = load double, double* %a.addr, align 8
13   ret double %load_add
16 ; CHECK-LABEL: func_no_fast
17 ; CHECK:       fadd double
18 ; CHECK-NEXT:  store
19 ; CHECK-NEXT:  ret
20 define double @func_no_fast(double %a, double %b) {
21 entry:
22   %a.addr = alloca double, align 8
23   %add = fadd fast double %b, 3.000000e+00
24   store double %add, double* %a.addr, align 8
25   %duplicated_add = fadd double %b, 3.000000e+00
26   ret double %duplicated_add