brintos

brintos / llvm-project-archived public Read only

0
0
Text · 989 B · fef4da1 Raw
38 lines · cpp
1// RUN: %clang_cc1 -O3 -ffp-contract=fast-honor-pragmas -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s2 3float fp_contract_1(float a, float b, float c) {4  // CHECK-LABEL: fp_contract_1fff(5  // CHECK: fmul contract float6  // CHECK: fadd contract float7  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 float13  // CHECK: fsub contract float14  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 float20  // CHECK: fadd contract float21  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 float27  // CHECK: fsub contract float28  a[0] -= b * c;29}30 31float fp_contract_5(float a, float b, float c) {32  // CHECK-LABEL: fp_contract_5fff(33  // CHECK: fmul contract float34  // CHECK: fadd contract float35  float t = a * b;36  return t + c;37}38