Melanie Blower | f5360d4 | 2020-05-01 10:32:06 -0700 | [diff] [blame] | 1 | // RUN: %clang_cc1 -ffp-contract=on -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s |
| 2 | // RUN: %clang_cc1 -ffp-contract=on -triple x86_64-linux-gnu -emit-llvm -o - %s | FileCheck %s |
Melanie Blower | f5360d4 | 2020-05-01 10:32:06 -0700 | [diff] [blame] | 3 | // Verify that float_control does not pertain to initializer expressions |
| 4 | |
| 5 | float y(); |
| 6 | float z(); |
| 7 | #pragma float_control(except, on) |
| 8 | class ON { |
| 9 | float w = 2 + y() * z(); |
Melanie Blower | 7cbb495 | 2020-05-04 07:25:23 -0700 | [diff] [blame] | 10 | // CHECK-LABEL: define {{.*}} @_ZN2ONC2Ev{{.*}} |
Melanie Blower | f5360d4 | 2020-05-01 10:32:06 -0700 | [diff] [blame] | 11 | //CHECK: call contract float {{.*}}llvm.fmuladd |
| 12 | }; |
| 13 | ON on; |
| 14 | #pragma float_control(except, off) |
| 15 | class OFF { |
| 16 | float w = 2 + y() * z(); |
Melanie Blower | 7cbb495 | 2020-05-04 07:25:23 -0700 | [diff] [blame] | 17 | // CHECK-LABEL: define {{.*}} @_ZN3OFFC2Ev{{.*}} |
Melanie Blower | f5360d4 | 2020-05-01 10:32:06 -0700 | [diff] [blame] | 18 | //CHECK: call contract float {{.*}}llvm.fmuladd |
| 19 | }; |
| 20 | OFF off; |