forked from OSchip/llvm-project
Revert "Make FP_CONTRACT ON the default."
This reverts commit r253269. This leads to assert / segfault triggering on the following reduced example: float foo(float U, float base, float cell) { return (U = 2 * base) - cell; } llvm-svn: 253337
This commit is contained in:
parent
6066dc69f1
commit
ff39366de5
|
@ -187,7 +187,7 @@ BENIGN_LANGOPT(DebuggerObjCLiteral , 1, 0, "debugger Objective-C literals and su
|
||||||
BENIGN_LANGOPT(SpellChecking , 1, 1, "spell-checking")
|
BENIGN_LANGOPT(SpellChecking , 1, 1, "spell-checking")
|
||||||
LANGOPT(SinglePrecisionConstants , 1, 0, "treating double-precision floating point constants as single precision constants")
|
LANGOPT(SinglePrecisionConstants , 1, 0, "treating double-precision floating point constants as single precision constants")
|
||||||
LANGOPT(FastRelaxedMath , 1, 0, "OpenCL fast relaxed math")
|
LANGOPT(FastRelaxedMath , 1, 0, "OpenCL fast relaxed math")
|
||||||
LANGOPT(DefaultFPContract , 1, 1, "FP_CONTRACT")
|
LANGOPT(DefaultFPContract , 1, 0, "FP_CONTRACT")
|
||||||
LANGOPT(NoBitFieldTypeAlign , 1, 0, "bit-field type alignment")
|
LANGOPT(NoBitFieldTypeAlign , 1, 0, "bit-field type alignment")
|
||||||
LANGOPT(HexagonQdsp6Compat , 1, 0, "hexagon-qdsp6 backward compatibility")
|
LANGOPT(HexagonQdsp6Compat , 1, 0, "hexagon-qdsp6 backward compatibility")
|
||||||
LANGOPT(ObjCAutoRefCount , 1, 0, "Objective-C automated reference counting")
|
LANGOPT(ObjCAutoRefCount , 1, 0, "Objective-C automated reference counting")
|
||||||
|
|
|
@ -1336,6 +1336,7 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
|
||||||
Opts.ZVector = 0;
|
Opts.ZVector = 0;
|
||||||
Opts.CXXOperatorNames = 1;
|
Opts.CXXOperatorNames = 1;
|
||||||
Opts.LaxVectorConversions = 0;
|
Opts.LaxVectorConversions = 0;
|
||||||
|
Opts.DefaultFPContract = 1;
|
||||||
Opts.NativeHalfType = 1;
|
Opts.NativeHalfType = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
// REQUIRES: aarch64-registered-target
|
// REQUIRES: aarch64-registered-target
|
||||||
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 \
|
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 -o - %s | FileCheck %s
|
||||||
// RUN: -ffp-contract=off -o - %s | FileCheck %s
|
|
||||||
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 \
|
|
||||||
// RUN: -o - %s | FileCheck -check-prefix=CHECK-FMA %s
|
|
||||||
|
|
||||||
// Test new aarch64 intrinsics and types
|
// Test new aarch64 intrinsics and types
|
||||||
|
|
||||||
|
@ -13,7 +10,8 @@ float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
|
||||||
return vmla_n_f32(a, b, c);
|
return vmla_n_f32(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
// CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
||||||
// CHECK: fadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
// CHECK: fadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
||||||
// CHECK-FMA: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
||||||
|
// CHECK-FMA: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
||||||
}
|
}
|
||||||
|
|
||||||
float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
||||||
|
@ -21,7 +19,8 @@ float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
||||||
return vmlaq_n_f32(a, b, c);
|
return vmlaq_n_f32(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
// CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
||||||
// CHECK: fadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
// CHECK: fadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
||||||
// CHECK-FMA: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
||||||
|
// CHECK-FMA: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
||||||
}
|
}
|
||||||
|
|
||||||
float64x2_t test_vmlaq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
float64x2_t test_vmlaq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
||||||
|
@ -29,7 +28,8 @@ float64x2_t test_vmlaq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
||||||
return vmlaq_n_f64(a, b, c);
|
return vmlaq_n_f64(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
// CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
||||||
// CHECK: fadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
// CHECK: fadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
||||||
// CHECK-FMA: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
||||||
|
// CHECK-FMA: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
||||||
}
|
}
|
||||||
|
|
||||||
float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
||||||
|
@ -37,7 +37,8 @@ float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
|
||||||
return vmlsq_n_f32(a, b, c);
|
return vmlsq_n_f32(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
// CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
||||||
// CHECK: fsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
// CHECK: fsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
||||||
// CHECK-FMA: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
|
||||||
|
// CHECK-FMA: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
|
||||||
}
|
}
|
||||||
|
|
||||||
float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
|
float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
|
||||||
|
@ -45,7 +46,8 @@ float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
|
||||||
return vmls_n_f32(a, b, c);
|
return vmls_n_f32(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
// CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
||||||
// CHECK: fsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
// CHECK: fsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
||||||
// CHECK-FMA: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
|
||||||
|
// CHECK-FMA: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
|
||||||
}
|
}
|
||||||
|
|
||||||
float64x2_t test_vmlsq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
float64x2_t test_vmlsq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
||||||
|
@ -53,7 +55,8 @@ float64x2_t test_vmlsq_n_f64(float64x2_t a, float64x2_t b, float64_t c) {
|
||||||
return vmlsq_n_f64(a, b, c);
|
return vmlsq_n_f64(a, b, c);
|
||||||
// CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
// CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
||||||
// CHECK: fsub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
// CHECK: fsub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
||||||
// CHECK-FMA: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
// CHECK-FMA: dup {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
|
||||||
|
// CHECK-FMA: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
|
||||||
}
|
}
|
||||||
|
|
||||||
float32x2_t test_vmla_lane_f32_0(float32x2_t a, float32x2_t b, float32x2_t v) {
|
float32x2_t test_vmla_lane_f32_0(float32x2_t a, float32x2_t b, float32x2_t v) {
|
||||||
|
|
|
@ -1,177 +0,0 @@
|
||||||
// RUN: %clang_cc1 -triple=aarch64-unknown -Os -ffp-contract=fast -S -o - %s | FileCheck -check-prefix=CHECK-FAST -check-prefix=CHECK-ALL %s
|
|
||||||
// RUN: %clang_cc1 -triple=aarch64-unknown -Os -ffp-contract=on -S -o - %s | FileCheck -check-prefix=CHECK-ON -check-prefix=CHECK-ALL %s
|
|
||||||
// RUN: %clang_cc1 -triple=aarch64-unknown -Os -ffp-contract=off -S -o - %s | FileCheck -check-prefix=CHECK-OFF -check-prefix=CHECK-ALL %s
|
|
||||||
// RUN: %clang_cc1 -triple=aarch64-unknown -Os -S -o - %s | FileCheck -check-prefix=CHECK-ON -check-prefix=CHECK-ALL %s
|
|
||||||
// REQUIRES: aarch64-registered-target
|
|
||||||
|
|
||||||
float test1(float x, float y, float z) {
|
|
||||||
return x*y + z;
|
|
||||||
// CHECK-ALL-LABEL: test1:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test2(double x, double y, double z) {
|
|
||||||
z -= x*y;
|
|
||||||
return z;
|
|
||||||
// CHECK-ALL-LABEL: test2:
|
|
||||||
// CHECK-FAST: fmsub
|
|
||||||
// CHECK-ON: fmsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
float test3(float x, float y, float z) {
|
|
||||||
float tmp = x*y;
|
|
||||||
return tmp + z;
|
|
||||||
// CHECK-ALL-LABEL: test3:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test4(double x, double y, double z) {
|
|
||||||
double tmp = x*y;
|
|
||||||
return tmp - z;
|
|
||||||
// CHECK-ALL-LABEL: test4:
|
|
||||||
// CHECK-FAST: fnmsub
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma STDC FP_CONTRACT ON
|
|
||||||
|
|
||||||
float test5(float x, float y, float z) {
|
|
||||||
return x*y + z;
|
|
||||||
// CHECK-ALL-LABEL: test5:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test6(double x, double y, double z) {
|
|
||||||
z -= x*y;
|
|
||||||
return z;
|
|
||||||
// CHECK-ALL-LABEL: test6:
|
|
||||||
// CHECK-FAST: fmsub
|
|
||||||
// CHECK-ON: fmsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
float test7(float x, float y, float z) {
|
|
||||||
float tmp = x*y;
|
|
||||||
return tmp + z;
|
|
||||||
// CHECK-ALL-LABEL: test7:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test8(double x, double y, double z) {
|
|
||||||
double tmp = x*y;
|
|
||||||
return tmp - z;
|
|
||||||
// CHECK-ALL-LABEL: test8:
|
|
||||||
// CHECK-FAST: fnmsub
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma STDC FP_CONTRACT OFF
|
|
||||||
|
|
||||||
float test9(float x, float y, float z) {
|
|
||||||
return x*y + z;
|
|
||||||
// CHECK-ALL-LABEL: test9:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test10(double x, double y, double z) {
|
|
||||||
z -= x*y;
|
|
||||||
return z;
|
|
||||||
// CHECK-ALL-LABEL: test10:
|
|
||||||
// CHECK-FAST: fmsub
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
float test11(float x, float y, float z) {
|
|
||||||
float tmp = x*y;
|
|
||||||
return tmp + z;
|
|
||||||
// CHECK-ALL-LABEL: test11:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test12(double x, double y, double z) {
|
|
||||||
double tmp = x*y;
|
|
||||||
return tmp - z;
|
|
||||||
// CHECK-ALL-LABEL: test12:
|
|
||||||
// CHECK-FAST: fnmsub
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma STDC FP_CONTRACT DEFAULT
|
|
||||||
|
|
||||||
float test17(float x, float y, float z) {
|
|
||||||
return x*y + z;
|
|
||||||
// CHECK-ALL-LABEL: test17:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test18(double x, double y, double z) {
|
|
||||||
z -= x*y;
|
|
||||||
return z;
|
|
||||||
// CHECK-ALL-LABEL: test18:
|
|
||||||
// CHECK-FAST: fmsub
|
|
||||||
// CHECK-ON: fmsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
||||||
|
|
||||||
float test19(float x, float y, float z) {
|
|
||||||
float tmp = x*y;
|
|
||||||
return tmp + z;
|
|
||||||
// CHECK-ALL-LABEL: test19:
|
|
||||||
// CHECK-FAST: fmadd
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fadd
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fadd
|
|
||||||
}
|
|
||||||
|
|
||||||
double test20(double x, double y, double z) {
|
|
||||||
double tmp = x*y;
|
|
||||||
return tmp - z;
|
|
||||||
// CHECK-ALL-LABEL: test20:
|
|
||||||
// CHECK-FAST: fnmsub
|
|
||||||
// CHECK-ON: fmul
|
|
||||||
// CHECK-ON-NEXT: fsub
|
|
||||||
// CHECK-OFF: fmul
|
|
||||||
// CHECK-OFF-NEXT: fsub
|
|
||||||
}
|
|
|
@ -1,7 +1,5 @@
|
||||||
// RUN: %clang_cc1 -O3 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
// RUN: %clang_cc1 -O3 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
|
||||||
|
|
||||||
#pragma STDC FP_CONTRACT OFF
|
|
||||||
|
|
||||||
// Is FP_CONTRACT is honored in a simple case?
|
// Is FP_CONTRACT is honored in a simple case?
|
||||||
float fp_contract_1(float a, float b, float c) {
|
float fp_contract_1(float a, float b, float c) {
|
||||||
// CHECK: _Z13fp_contract_1fff
|
// CHECK: _Z13fp_contract_1fff
|
||||||
|
|
|
@ -36,10 +36,8 @@
|
||||||
// RUN: %clang -### -S -ffp-contract=fast %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-FAST-CHECK %s
|
// RUN: %clang -### -S -ffp-contract=fast %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-FAST-CHECK %s
|
||||||
// RUN: %clang -### -S -ffast-math %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-FAST-CHECK %s
|
// RUN: %clang -### -S -ffast-math %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-FAST-CHECK %s
|
||||||
// RUN: %clang -### -S -ffp-contract=off %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-OFF-CHECK %s
|
// RUN: %clang -### -S -ffp-contract=off %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-OFF-CHECK %s
|
||||||
// RUN: %clang -### -S -ffp-contract=on %s 2>&1 | FileCheck -check-prefix=FP-CONTRACT-ON-CHECK %s
|
|
||||||
// FP-CONTRACT-FAST-CHECK: -ffp-contract=fast
|
// FP-CONTRACT-FAST-CHECK: -ffp-contract=fast
|
||||||
// FP-CONTRACT-OFF-CHECK: -ffp-contract=off
|
// FP-CONTRACT-OFF-CHECK: -ffp-contract=off
|
||||||
// FP-CONTRACT-ON-CHECK: -ffp-contract=on
|
|
||||||
|
|
||||||
// RUN: %clang -### -S -funroll-loops %s 2>&1 | FileCheck -check-prefix=CHECK-UNROLL-LOOPS %s
|
// RUN: %clang -### -S -funroll-loops %s 2>&1 | FileCheck -check-prefix=CHECK-UNROLL-LOOPS %s
|
||||||
// RUN: %clang -### -S -fno-unroll-loops %s 2>&1 | FileCheck -check-prefix=CHECK-NO-UNROLL-LOOPS %s
|
// RUN: %clang -### -S -fno-unroll-loops %s 2>&1 | FileCheck -check-prefix=CHECK-NO-UNROLL-LOOPS %s
|
||||||
|
|
Loading…
Reference in New Issue