1; RUN: opt < %s -newgvn -S | FileCheck %s 2 3; CHECK-LABEL: func_fast 4; CHECK: fadd fast double 5; CHECK-NEXT: store 6; CHECK-NEXT: ret 7define double @func_fast(double %a, double %b) { 8entry: 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 14} 15 16; CHECK-LABEL: func_no_fast 17; CHECK: fadd double 18; CHECK-NEXT: store 19; CHECK-NEXT: ret 20define double @func_no_fast(double %a, double %b) { 21entry: 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 27} 28 29