• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2; RUN: opt < %s -gvn -S | FileCheck %s
3
4; CHECK-LABEL: func_fast
5; CHECK:       fadd fast double
6; CHECK-NEXT:  store
7; CHECK-NEXT:  ret
8define double @func_fast(double %a, double %b) {
9entry:
10  %a.addr = alloca double, align 8
11  %add = fadd fast double %b, 3.000000e+00
12  store double %add, double* %a.addr, align 8
13  %load_add = load double, double* %a.addr, align 8
14  ret double %load_add
15}
16
17; CHECK-LABEL: func_no_fast
18; CHECK:       fadd double
19; CHECK-NEXT:  store
20; CHECK-NEXT:  ret
21define double @func_no_fast(double %a, double %b) {
22entry:
23  %a.addr = alloca double, align 8
24  %add = fadd fast double %b, 3.000000e+00
25  store double %add, double* %a.addr, align 8
26  %duplicated_add = fadd double %b, 3.000000e+00
27  ret double %duplicated_add
28}
29
30