Reminder to actually explain in the commit message why the particular change is being reverted.
On Fri, Aug 6, 2021 at 10:02 PM Zahira Ammarguellat via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > > Author: Zahira Ammarguellat > Date: 2021-08-06T12:01:47-07:00 > New Revision: 4389a413e2129d7d55ee779638b649aa852b6f8a > > URL: > https://github.com/llvm/llvm-project/commit/4389a413e2129d7d55ee779638b649aa852b6f8a > DIFF: > https://github.com/llvm/llvm-project/commit/4389a413e2129d7d55ee779638b649aa852b6f8a.diff > > LOG: Revert "[clang][fpenv][patch] Change clang option -ffp-model=precise to > select ffp-contract=on" > > This reverts commit 48ad446a0fb2c9b98cb7047e4daf8a84c29cef8f. > > Added: > > > Modified: > clang/docs/UsersManual.rst > clang/lib/Driver/ToolChains/Clang.cpp > clang/test/CodeGen/ffp-contract-option.c > clang/test/CodeGen/ppc-emmintrin.c > clang/test/CodeGen/ppc-xmmintrin.c > clang/test/Driver/fp-model.c > > Removed: > > > > ################################################################################ > diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst > index 838669794ea8..980d0ab45975 100644 > --- a/clang/docs/UsersManual.rst > +++ b/clang/docs/UsersManual.rst > @@ -1260,50 +1260,8 @@ installed. > Controlling Floating Point Behavior > ----------------------------------- > > -Clang provides a number of ways to control floating point behavior, including > -with command line options and source pragmas. This section > -describes the various floating point semantic modes and the corresponding > options. > - > -.. csv-table:: Floating Point Semantic Modes > - :header: "Mode", "Values" > - :widths: 15, 30, 30 > - > - "except_behavior", "{ignore, strict, may_trap}", "ffp-exception-behavior" > - "fenv_access", "{off, on}", "(none)" > - "rounding_mode", "{dynamic, tonearest, downward, upward, towardzero}", > "frounding-math" > - "contract", "{on, off, fast}", "ffp-contract" > - "denormal_fp_math", "{IEEE, PreserveSign, PositiveZero}", > "fdenormal-fp-math" > - "denormal_fp32_math", "{IEEE, PreserveSign, PositiveZero}", > "fdenormal-fp-math-fp32" > - "support_math_errno", "{on, off}", "fmath-errno" > - "no_honor_nans", "{on, off}", "fhonor-nans" > - "no_honor_infinities", "{on, off}", "fhonor-infinities" > - "no_signed_zeros", "{on, off}", "fsigned-zeros" > - "allow_reciprocal", "{on, off}", "freciprocal-math" > - "allow_approximate_fns", "{on, off}", "(none)" > - "allow_reassociation", "{on, off}", "fassociative-math" > - > - > -This table describes the option settings that correspond to the three > -floating point semantic models: precise (the default), strict, and fast. > - > - > -.. csv-table:: Floating Point Models > - :header: "Mode", "Precise", "Strict", "Fast" > - :widths: 25, 15, 15, 15 > - > - "except_behavior", "ignore", "strict", "ignore" > - "fenv_access", "off", "on", "off" > - "rounding_mode", "tonearest", "dynamic", "tonearest" > - "contract", "on", "off", "fast" > - "denormal_fp_math", "IEEE", "IEEE", "PreserveSign" > - "denormal_fp32_math", "IEEE","IEEE", "PreserveSign" > - "support_math_errno", "on", "on", "off" > - "no_honor_nans", "off", "off", "on" > - "no_honor_infinities", "off", "off", "on" > - "no_signed_zeros", "off", "off", "on" > - "allow_reciprocal", "off", "off", "on" > - "allow_approximate_fns", "off", "off", "on" > - "allow_reassociation", "off", "off", "on" > +Clang provides a number of ways to control floating point behavior. The > options > +are listed below. > > .. option:: -ffast-math > > @@ -1498,7 +1456,7 @@ Note that floating-point operations performed as part > of constant initialization > and ``fast``. > Details: > > - * ``precise`` Disables optimizations that are not value-safe on > floating-point data, although FP contraction (FMA) is enabled > (``-ffp-contract=on``). This is the default behavior. > + * ``precise`` Disables optimizations that are not value-safe on > floating-point data, although FP contraction (FMA) is enabled > (``-ffp-contract=fast``). This is the default behavior. > * ``strict`` Enables ``-frounding-math`` and > ``-ffp-exception-behavior=strict``, and disables contractions (FMA). All of > the ``-ffast-math`` enablements are disabled. Enables ``STDC FENV_ACCESS``: > by default ``FENV_ACCESS`` is disabled. This option setting behaves as though > ``#pragma STDC FENV_ACESS ON`` appeared at the top of the source file. > * ``fast`` Behaves identically to specifying both ``-ffast-math`` and > ``ffp-contract=fast`` > > > diff --git a/clang/lib/Driver/ToolChains/Clang.cpp > b/clang/lib/Driver/ToolChains/Clang.cpp > index 1c79640be80f..96bbc0250126 100644 > --- a/clang/lib/Driver/ToolChains/Clang.cpp > +++ b/clang/lib/Driver/ToolChains/Clang.cpp > @@ -2641,7 +2641,7 @@ static void RenderFloatingPointOptions(const ToolChain > &TC, const Driver &D, > > llvm::DenormalMode DenormalFPMath = DefaultDenormalFPMath; > llvm::DenormalMode DenormalFP32Math = DefaultDenormalFP32Math; > - StringRef FPContract = "on"; > + StringRef FPContract = ""; > bool StrictFPModel = false; > > > @@ -2666,7 +2666,7 @@ static void RenderFloatingPointOptions(const ToolChain > &TC, const Driver &D, > ReciprocalMath = false; > SignedZeros = true; > // -fno_fast_math restores default denormal and fpcontract handling > - FPContract = "on"; > + FPContract = ""; > DenormalFPMath = llvm::DenormalMode::getIEEE(); > > // FIXME: The target may have picked a non-IEEE default mode here > based on > @@ -2686,18 +2686,20 @@ static void RenderFloatingPointOptions(const > ToolChain &TC, const Driver &D, > // ffp-model= is a Driver option, it is entirely rewritten into more > // granular options before being passed into cc1. > // Use the gcc option in the switch below. > - if (!FPModel.empty() && !FPModel.equals(Val)) > + if (!FPModel.empty() && !FPModel.equals(Val)) { > D.Diag(clang::diag::warn_drv_overriding_flag_option) > << Args.MakeArgString("-ffp-model=" + FPModel) > << Args.MakeArgString("-ffp-model=" + Val); > + FPContract = ""; > + } > if (Val.equals("fast")) { > optID = options::OPT_ffast_math; > FPModel = Val; > - FPContract = Val; > + FPContract = "fast"; > } else if (Val.equals("precise")) { > optID = options::OPT_ffp_contract; > FPModel = Val; > - FPContract = "on"; > + FPContract = "fast"; > PreciseFPModel = true; > } else if (Val.equals("strict")) { > StrictFPModel = true; > @@ -2783,11 +2785,9 @@ static void RenderFloatingPointOptions(const ToolChain > &TC, const Driver &D, > case options::OPT_ffp_contract: { > StringRef Val = A->getValue(); > if (PreciseFPModel) { > - // When -ffp-model=precise is seen on the command line, > - // the boolean PreciseFPModel is set to true which indicates > - // "the current option is actually PreciseFPModel". The optID > - // is changed to OPT_ffp_contract and FPContract is set to "on". > - // the argument Val string is "precise": it shouldn't be checked. > + // -ffp-model=precise enables ffp-contract=fast as a side effect > + // the FPContract value has already been set to a string literal > + // and the Val string isn't a pertinent value. > ; > } else if (Val.equals("fast") || Val.equals("on") || Val.equals("off")) > FPContract = Val; > @@ -2897,17 +2897,18 @@ static void RenderFloatingPointOptions(const > ToolChain &TC, const Driver &D, > // -fno_fast_math restores default denormal and fpcontract handling > DenormalFPMath = DefaultDenormalFPMath; > DenormalFP32Math = llvm::DenormalMode::getIEEE(); > - FPContract = "on"; > + FPContract = ""; > break; > } > if (StrictFPModel) { > // If -ffp-model=strict has been specified on command line but > // subsequent options conflict then emit warning diagnostic. > - if (HonorINFs && HonorNaNs && !AssociativeMath && !ReciprocalMath && > - SignedZeros && TrappingMath && RoundingFPMath && > - DenormalFPMath == llvm::DenormalMode::getIEEE() && > - DenormalFP32Math == llvm::DenormalMode::getIEEE() && > - FPContract.equals("off")) > + if (HonorINFs && HonorNaNs && > + !AssociativeMath && !ReciprocalMath && > + SignedZeros && TrappingMath && RoundingFPMath && > + (FPContract.equals("off") || FPContract.empty()) && > + DenormalFPMath == llvm::DenormalMode::getIEEE() && > + DenormalFP32Math == llvm::DenormalMode::getIEEE()) > // OK: Current Arg doesn't conflict with -ffp-model=strict > ; > else { > > diff --git a/clang/test/CodeGen/ffp-contract-option.c > b/clang/test/CodeGen/ffp-contract-option.c > index efc72c2b5461..52b750795940 100644 > --- a/clang/test/CodeGen/ffp-contract-option.c > +++ b/clang/test/CodeGen/ffp-contract-option.c > @@ -1,46 +1,9 @@ > -// RUN: %clang_cc1 -O3 -ffp-contract=fast -triple=aarch64-apple-darwin -S -o > - %s | FileCheck --check-prefix=CHECK-FMADD %s > +// RUN: %clang_cc1 -O3 -ffp-contract=fast -triple=aarch64-apple-darwin -S -o > - %s | FileCheck %s > // REQUIRES: aarch64-registered-target > > float fma_test1(float a, float b, float c) { > -// CHECK-FMADD: fmadd > - float x = a * b; > - float y = x + c; > - return y; > -} > - > -// RUN: %clang_cc1 -triple=x86_64 %s -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-DEFAULT %s > -// > -// RUN: %clang_cc1 -triple=x86_64 -ffp-contract=off %s -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-DEFAULT %s > -// RUN: %clang_cc1 -triple=x86_64 -ffp-contract=on %s -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-ON %s > -// RUN: %clang_cc1 -triple=x86_64 -ffp-contract=fast %s -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-CONTRACTFAST %s > -// > -// RUN: %clang_cc1 -triple=x86_64 -ffast-math %s -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-DEFAULTFAST %s > -// RUN: %clang_cc1 -triple=x86_64 -ffast-math -ffp-contract=off %s > -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-DEFAULTFAST %s > -// RUN: %clang_cc1 -triple=x86_64 -ffast-math -ffp-contract=on %s -emit-llvm > -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-ONFAST %s > -// RUN: %clang_cc1 -triple=x86_64 -ffast-math -ffp-contract=fast %s > -emit-llvm -o - \ > -// RUN:| FileCheck --check-prefix=CHECK-FASTFAST %s > -float mymuladd( float x, float y, float z ) { > - return x * y + z; > - // CHECK-DEFAULT: = fmul float > - // CHECK-DEFAULT: = fadd float > - > - // CHECK-ON: = call float @llvm.fmuladd.f32 > - > - // CHECK-CONTRACTFAST: = fmul contract float > - // CHECK-CONTRACTFAST: = fadd contract float > - > - // CHECK-DEFAULTFAST: = fmul reassoc nnan ninf nsz arcp afn float > - // CHECK-DEFAULTFAST: = fadd reassoc nnan ninf nsz arcp afn float > - > - // CHECK-ONFAST: = call reassoc nnan ninf nsz arcp afn float > @llvm.fmuladd.f32 > - > - // CHECK-FASTFAST: = fmul fast float > - // CHECK-FASTFAST: = fadd fast float > +// CHECK: fmadd > + float x = a * b; > + float y = x + c; > + return y; > } > > diff --git a/clang/test/CodeGen/ppc-emmintrin.c > b/clang/test/CodeGen/ppc-emmintrin.c > index 4a246ff92d76..fa3801f50a01 100644 > --- a/clang/test/CodeGen/ppc-emmintrin.c > +++ b/clang/test/CodeGen/ppc-emmintrin.c > @@ -2,9 +2,9 @@ > // REQUIRES: powerpc-registered-target > > // RUN: %clang -S -emit-llvm -target powerpc64-unknown-linux-gnu -mcpu=pwr8 > -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > -// RUN: -ffp-contract=off -fno-discard-value-names -mllvm > -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s > --check-prefixes=CHECK,CHECK-BE > +// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | > llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-BE > // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-linux-gnu > -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > -// RUN: -ffp-contract=off -fno-discard-value-names -mllvm > -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s > --check-prefixes=CHECK,CHECK-LE > +// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | > llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-LE > > // CHECK-BE-DAG: @_mm_movemask_pd.perm_mask = internal constant <4 x i32> > <i32 -2139062144, i32 -2139062144, i32 -2139062144, i32 -2139078656>, align 16 > // CHECK-BE-DAG: @_mm_shuffle_epi32.permute_selectors = internal constant [4 > x i32] [i32 66051, i32 67438087, i32 134810123, i32 202182159], align 4 > > diff --git a/clang/test/CodeGen/ppc-xmmintrin.c > b/clang/test/CodeGen/ppc-xmmintrin.c > index a7f6ed6e0e67..d3f18bfbb1e5 100644 > --- a/clang/test/CodeGen/ppc-xmmintrin.c > +++ b/clang/test/CodeGen/ppc-xmmintrin.c > @@ -2,11 +2,11 @@ > // REQUIRES: powerpc-registered-target > > // RUN: %clang -S -emit-llvm -target powerpc64-unknown-linux-gnu -mcpu=pwr8 > -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > -// RUN: -ffp-contract=off -fno-discard-value-names -mllvm > -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s > --check-prefixes=CHECK,CHECK-BE > +// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | > llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-BE > // RUN: %clang -x c++ -fsyntax-only -target powerpc64-unknown-linux-gnu > -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns > // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-linux-gnu > -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > -// RUN: -ffp-contract=off -fno-discard-value-names -mllvm > -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s > --check-prefixes=CHECK,CHECK-LE > +// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | > llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-LE > // RUN: %clang -x c++ -fsyntax-only -target powerpc64le-unknown-linux-gnu > -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ > // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns > > > diff --git a/clang/test/Driver/fp-model.c b/clang/test/Driver/fp-model.c > index c6d683e25c0b..5fa9d110dd83 100644 > --- a/clang/test/Driver/fp-model.c > +++ b/clang/test/Driver/fp-model.c > @@ -1,90 +1,88 @@ > // Test that incompatible combinations of -ffp-model= options > // and other floating point options get a warning diagnostic. > +// > +// REQUIRES: clang-driver > > -// RUN: %clang -target x86_64 -### -ffp-model=fast -ffp-contract=off -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=fast -ffp-contract=off -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN %s > // WARN: warning: overriding '-ffp-model=fast' option with > '-ffp-contract=off' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=fast -ffp-contract=on -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=fast -ffp-contract=on -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN1 %s > // WARN1: warning: overriding '-ffp-model=fast' option with > '-ffp-contract=on' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fassociative-math -c > %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fassociative-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN2 %s > // WARN2: warning: overriding '-ffp-model=strict' option with > '-fassociative-math' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -ffast-math -c %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -ffast-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN3 %s > // WARN3: warning: overriding '-ffp-model=strict' option with '-ffast-math' > [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -ffinite-math-only -c > %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -ffinite-math-only -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN4 %s > // WARN4: warning: overriding '-ffp-model=strict' option with > '-ffinite-math-only' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -ffp-contract=fast -c > %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -ffp-contract=fast -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN5 %s > // WARN5: warning: overriding '-ffp-model=strict' option with > '-ffp-contract=fast' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -ffp-contract=fast -c > %s 2>&1 \ > -// RUN: | FileCheck --check-prefix=WARN6 %s > -// WARN6: warning: overriding '-ffp-model=strict' option with > '-ffp-contract=fast' [-Woverriding-t-option] > - > -// RUN: %clang -target x86_64 -### -ffp-model=strict -ffp-contract=on -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -ffp-contract=on -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN7 %s > // WARN7: warning: overriding '-ffp-model=strict' option with > '-ffp-contract=on' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fno-honor-infinities > -c %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fno-honor-infinities -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN8 %s > // WARN8: warning: overriding '-ffp-model=strict' option with > '-fno-honor-infinities' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fno-honor-nans -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fno-honor-nans -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN9 %s > // WARN9: warning: overriding '-ffp-model=strict' option with > '-fno-honor-nans' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fno-rounding-math -c > %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fno-rounding-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARNa %s > // WARNa: warning: overriding '-ffp-model=strict' option with > '-fno-rounding-math' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fno-signed-zeros -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fno-signed-zeros -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARNb %s > // WARNb: warning: overriding '-ffp-model=strict' option with > '-fno-signed-zeros' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -fno-trapping-math -c > %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -fno-trapping-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARNc %s > // WARNc: warning: overriding '-ffp-model=strict' option with > '-fno-trapping-math' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -freciprocal-math -c %s > 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -freciprocal-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARNd %s > // WARNd: warning: overriding '-ffp-model=strict' option with > '-freciprocal-math' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict > -funsafe-math-optimizations -c %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -funsafe-math-optimizations -c %s 2>&1 > \ > // RUN: | FileCheck --check-prefix=WARNe %s > // WARNe: warning: overriding '-ffp-model=strict' option with > '-funsafe-math-optimizations' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict -Ofast -c %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict -Ofast -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARNf %s > // WARNf: warning: overriding '-ffp-model=strict' option with '-Ofast' > [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -ffp-model=strict > -fdenormal-fp-math=preserve-sign,preserve-sign -c %s 2>&1 \ > +// RUN: %clang -### -ffp-model=strict > -fdenormal-fp-math=preserve-sign,preserve-sign -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=WARN10 %s > // WARN10: warning: overriding '-ffp-model=strict' option with > '-fdenormal-fp-math=preserve-sign,preserve-sign' [-Woverriding-t-option] > > -// RUN: %clang -target x86_64 -### -c %s 2>&1 \ > +// RUN: %clang -### -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-NOROUND %s > // CHECK-NOROUND: "-cc1" > // CHECK-NOROUND: "-fno-rounding-math" > > -// RUN: %clang -target x86_64 -### -frounding-math -c %s 2>&1 \ > +// RUN: %clang -### -frounding-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-ROUND --implicit-check-not > ffp-exception-behavior=strict %s > // CHECK-ROUND: "-cc1" > // CHECK-ROUND: "-frounding-math" > > -// RUN: %clang -target x86_64 -### -ftrapping-math -c %s 2>&1 \ > +// RUN: %clang -### -ftrapping-math -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-TRAP %s > // CHECK-TRAP: "-cc1" > // CHECK-TRAP: "-ffp-exception-behavior=strict" > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-model=fast -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-model=fast -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FPM-FAST %s > // CHECK-FPM-FAST: "-cc1" > // CHECK-FPM-FAST: "-menable-no-infs" > @@ -98,35 +96,34 @@ > // CHECK-FPM-FAST: "-ffast-math" > // CHECK-FPM-FAST: "-ffinite-math-only" > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-model=precise -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-model=precise -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FPM-PRECISE %s > // CHECK-FPM-PRECISE: "-cc1" > -// CHECK-FPM-PRECISE: "-ffp-contract=on" > +// CHECK-FPM-PRECISE: "-ffp-contract=fast" > // CHECK-FPM-PRECISE: "-fno-rounding-math" > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-model=strict -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-model=strict -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FPM-STRICT %s > // CHECK-FPM-STRICT: "-cc1" > -// CHECK-FPM-STRICT: "-fmath-errno" > -// CHECK-FPM-STRICT: "-ffp-contract=off" > // CHECK-FPM-STRICT: "-frounding-math" > // CHECK-FPM-STRICT: "-ffp-exception-behavior=strict" > > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-exception-behavior=strict > -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-exception-behavior=strict -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FEB-STRICT %s > // CHECK-FEB-STRICT: "-cc1" > // CHECK-FEB-STRICT: "-fno-rounding-math" > // CHECK-FEB-STRICT: "-ffp-exception-behavior=strict" > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-exception-behavior=maytrap > -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-exception-behavior=maytrap -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FEB-MAYTRAP %s > // CHECK-FEB-MAYTRAP: "-cc1" > // CHECK-FEB-MAYTRAP: "-fno-rounding-math" > // CHECK-FEB-MAYTRAP: "-ffp-exception-behavior=maytrap" > > -// RUN: %clang -target x86_64 -### -nostdinc -ffp-exception-behavior=ignore > -c %s 2>&1 \ > +// RUN: %clang -### -nostdinc -ffp-exception-behavior=ignore -c %s 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-FEB-IGNORE %s > // CHECK-FEB-IGNORE: "-cc1" > // CHECK-FEB-IGNORE: "-fno-rounding-math" > // CHECK-FEB-IGNORE: "-ffp-exception-behavior=ignore" > + > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits