Author: Sanjay Patel Date: 2020-03-02T09:47:32-05:00 New Revision: 1e308452bf68b9576a76004de28307f0318ef9eb
URL: https://github.com/llvm/llvm-project/commit/1e308452bf68b9576a76004de28307f0318ef9eb DIFF: https://github.com/llvm/llvm-project/commit/1e308452bf68b9576a76004de28307f0318ef9eb.diff LOG: [CodeGen] avoid running the entire optimizer pipeline in clang test file; NFC I'm making the CHECK lines vague enough that they pass at -O0. If that is too vague (we really want to check the data flow to verify that the variables are not mismatched, etc), then we can adjust those lines again to more closely match the output at -O0 rather than -O1. This change is based on the post-commit comments for: https://github.com/llvm/llvm-project/commit/83f4372f3a708ceaa800feff8b1bd92ae2c3be5f http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20200224/307888.html Added: Modified: clang/test/CodeGen/complex-math.c Removed: ################################################################################ diff --git a/clang/test/CodeGen/complex-math.c b/clang/test/CodeGen/complex-math.c index 22a9e287f07f..4d3869b085c6 100644 --- a/clang/test/CodeGen/complex-math.c +++ b/clang/test/CodeGen/complex-math.c @@ -1,5 +1,3 @@ -// FIXME: This file should not be using -O1; that makes it depend on the entire LLVM IR optimizer. - // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple x86_64-unknown-unknown -o - | FileCheck %s --check-prefix=X86 // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple x86_64-pc-win64 -o - | FileCheck %s --check-prefix=X86 // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple i686-unknown-unknown -o - | FileCheck %s --check-prefix=X86 @@ -7,7 +5,7 @@ // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple armv7-none-linux-gnueabi -o - | FileCheck %s --check-prefix=ARM // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple armv7-none-linux-gnueabihf -o - | FileCheck %s --check-prefix=ARMHF // RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple thumbv7k-apple-watchos2.0 -o - -target-abi aapcs16 | FileCheck %s --check-prefix=ARM7K -// RUN: %clang_cc1 %s -O1 -fno-experimental-new-pass-manager -emit-llvm -triple aarch64-unknown-unknown -ffast-math -o - | FileCheck %s --check-prefix=AARCH64-FASTMATH +// RUN: %clang_cc1 %s -O0 -fno-experimental-new-pass-manager -emit-llvm -triple aarch64-unknown-unknown -ffast-math -o - | FileCheck %s --check-prefix=AARCH64-FASTMATH float _Complex add_float_rr(float a, float b) { // X86-LABEL: @add_float_rr( @@ -137,23 +135,20 @@ float _Complex div_float_rc(float a, float _Complex b) { // AARCH64-FASTMATH-LABEL: @div_float_rc(float %a, [2 x float] %b.coerce) // A = a // B = 0 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x float] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x float] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast float [[C]], %a + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast float // BD = 0 // ACpBD = AC // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast float [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast float [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast float [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast float // // BC = 0 - // AARCH64-FASTMATH: [[NEGA:%.*]] = fneg fast float %a - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast float [[D]], [[NEGA]] + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast float // - // AARCH64-FASTMATH: fdiv fast float [[AC]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast float [[AD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast float + // AARCH64-FASTMATH: fdiv fast float // AARCH64-FASTMATH: ret return a / b; } @@ -165,25 +160,21 @@ float _Complex div_float_cc(float _Complex a, float _Complex b) { // a / b = (A+iB) / (C+iD) = ((AC+BD)/(CC+DD)) + i((BC-AD)/(CC+DD)) // AARCH64-FASTMATH-LABEL: @div_float_cc([2 x float] %a.coerce, [2 x float] %b.coerce) - // AARCH64-FASTMATH: [[A:%.*]] = extractvalue [2 x float] %a.coerce, 0 - // AARCH64-FASTMATH: [[B:%.*]] = extractvalue [2 x float] %a.coerce, 1 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x float] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x float] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast float [[C]], [[A]] - // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast float [[D]], [[B]] - // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast float [[AC]], [[BD]] + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast float // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast float [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast float [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast float [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast float // - // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast float [[C]], [[B]] - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast float [[D]], [[A]] - // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast float [[BC]], [[AD]] + // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast float + // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast float // - // AARCH64-FASTMATH: fdiv fast float [[ACpBD]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast float [[BCmAD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast float + // AARCH64-FASTMATH: fdiv fast float // AARCH64-FASTMATH: ret return a / b; } @@ -315,23 +306,20 @@ double _Complex div_double_rc(double a, double _Complex b) { // AARCH64-FASTMATH-LABEL: @div_double_rc(double %a, [2 x double] %b.coerce) // A = a // B = 0 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x double] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x double] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast double [[C]], %a + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast double // BD = 0 // ACpBD = AC // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast double [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast double [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast double [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast double // // BC = 0 - // AARCH64-FASTMATH: [[NEGA:%.*]] = fneg fast double %a - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast double [[D]], [[NEGA]] + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast double // - // AARCH64-FASTMATH: fdiv fast double [[AC]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast double [[AD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast double + // AARCH64-FASTMATH: fdiv fast double // AARCH64-FASTMATH: ret return a / b; } @@ -343,25 +331,21 @@ double _Complex div_double_cc(double _Complex a, double _Complex b) { // a / b = (A+iB) / (C+iD) = ((AC+BD)/(CC+DD)) + i((BC-AD)/(CC+DD)) // AARCH64-FASTMATH-LABEL: @div_double_cc([2 x double] %a.coerce, [2 x double] %b.coerce) - // AARCH64-FASTMATH: [[A:%.*]] = extractvalue [2 x double] %a.coerce, 0 - // AARCH64-FASTMATH: [[B:%.*]] = extractvalue [2 x double] %a.coerce, 1 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x double] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x double] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast double [[C]], [[A]] - // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast double [[D]], [[B]] - // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast double [[AC]], [[BD]] + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast double // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast double [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast double [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast double [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast double // - // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast double [[C]], [[B]] - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast double [[D]], [[A]] - // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast double [[BC]], [[AD]] + // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast double + // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast double // - // AARCH64-FASTMATH: fdiv fast double [[ACpBD]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast double [[BCmAD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast double + // AARCH64-FASTMATH: fdiv fast double // AARCH64-FASTMATH: ret return a / b; } @@ -511,23 +495,20 @@ long double _Complex div_long_double_rc(long double a, long double _Complex b) { // AARCH64-FASTMATH-LABEL: @div_long_double_rc(fp128 %a, [2 x fp128] %b.coerce) // A = a // B = 0 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x fp128] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x fp128] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast fp128 [[C]], %a + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast fp128 // BD = 0 // ACpBD = AC // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast fp128 [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast fp128 [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast fp128 [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast fp128 // // BC = 0 - // AARCH64-FASTMATH: [[NEGA:%.*]] = fneg fast fp128 %a - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast fp128 [[D]], [[NEGA]] + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast fp128 // - // AARCH64-FASTMATH: fdiv fast fp128 [[AC]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast fp128 [[AD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast fp128 + // AARCH64-FASTMATH: fdiv fast fp128 // AARCH64-FASTMATH: ret return a / b; } @@ -543,25 +524,21 @@ long double _Complex div_long_double_cc(long double _Complex a, long double _Com // a / b = (A+iB) / (C+iD) = ((AC+BD)/(CC+DD)) + i((BC-AD)/(CC+DD)) // AARCH64-FASTMATH-LABEL: @div_long_double_cc([2 x fp128] %a.coerce, [2 x fp128] %b.coerce) - // AARCH64-FASTMATH: [[A:%.*]] = extractvalue [2 x fp128] %a.coerce, 0 - // AARCH64-FASTMATH: [[B:%.*]] = extractvalue [2 x fp128] %a.coerce, 1 - // AARCH64-FASTMATH: [[C:%.*]] = extractvalue [2 x fp128] %b.coerce, 0 - // AARCH64-FASTMATH: [[D:%.*]] = extractvalue [2 x fp128] %b.coerce, 1 // - // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast fp128 [[C]], [[A]] - // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast fp128 [[D]], [[B]] - // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast fp128 [[AC]], [[BD]] + // AARCH64-FASTMATH: [[AC:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[BD:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[ACpBD:%.*]] = fadd fast fp128 // - // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast fp128 [[C]], [[C]] - // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast fp128 [[D]], [[D]] - // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast fp128 [[CC]], [[DD]] + // AARCH64-FASTMATH: [[CC:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[DD:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[CCpDD:%.*]] = fadd fast fp128 // - // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast fp128 [[C]], [[B]] - // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast fp128 [[D]], [[A]] - // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast fp128 [[BC]], [[AD]] + // AARCH64-FASTMATH: [[BC:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[AD:%.*]] = fmul fast fp128 + // AARCH64-FASTMATH: [[BCmAD:%.*]] = fsub fast fp128 // - // AARCH64-FASTMATH: fdiv fast fp128 [[ACpBD]], [[CCpDD]] - // AARCH64-FASTMATH: fdiv fast fp128 [[BCmAD]], [[CCpDD]] + // AARCH64-FASTMATH: fdiv fast fp128 + // AARCH64-FASTMATH: fdiv fast fp128 // AARCH64-FASTMATH: ret return a / b; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits