Clang Project

clang_source_code/test/CodeGen/ffp-contract-fast-option.cpp
1// RUN: %clang_cc1 -O3 -ffp-contract=fast -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
2
3float fp_contract_1(float a, float b, float c) {
4  // CHECK-LABEL: fp_contract_1fff(
5  // CHECK: fmul contract float
6  // CHECK: fadd contract float
7  return a * b + c;
8}
9
10float fp_contract_2(float a, float b, float c) {
11  // CHECK-LABEL: fp_contract_2fff(
12  // CHECK: fmul contract float
13  // CHECK: fsub contract float
14  return a * b - c;
15}
16
17void fp_contract_3(float *a, float b, float c) {
18  // CHECK-LABEL: fp_contract_3Pfff(
19  // CHECK: fmul contract float
20  // CHECK: fadd contract float
21  a[0] += b * c;
22}
23
24void fp_contract_4(float *a, float b, float c) {
25  // CHECK-LABEL: fp_contract_4Pfff(
26  // CHECK: fmul contract float
27  // CHECK: fsub contract float
28  a[0] -= b * c;
29}
30