diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-05-06 21:07:50 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-05-06 21:07:50 +0000 |
| commit | bb36aed06b9fcfd51b9d130ef9270e3c2cdb7cbd (patch) | |
| tree | 804ea140c5bc38f804cd56a35d62ffe93269c3a8 /clang/test/Preprocessor | |
| parent | 58e257de2e57e6b7a82a38d184651b45d60e721e (diff) | |
| download | bcm5719-llvm-bb36aed06b9fcfd51b9d130ef9270e3c2cdb7cbd.tar.gz bcm5719-llvm-bb36aed06b9fcfd51b9d130ef9270e3c2cdb7cbd.zip | |
More x86 target feature support.
- Apologies for the extremely gross code duplication, I want to get
this working and then decide how to get this information out of the
back end.
- This replaces -m[no-]sse4[12] by -m[no-]sse4, it appears gcc
doesn't distinguish them?
- -msse, etc. now properly disable/enable related features.
- Don't always define __SSE3__...
- The main missing functionality bit here is that we don't initialize
the features based on the CPU for all -march options.
llvm-svn: 71117
Diffstat (limited to 'clang/test/Preprocessor')
| -rw-r--r-- | clang/test/Preprocessor/x86_target_features.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/x86_target_features.c b/clang/test/Preprocessor/x86_target_features.c new file mode 100644 index 00000000000..456c4fcf3a0 --- /dev/null +++ b/clang/test/Preprocessor/x86_target_features.c @@ -0,0 +1,25 @@ +// FIXME: Use -triple, not -ccc-host-triple. + +// RUN: clang -ccc-host-triple i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o %t %s && +// RUN: grep '#define __SSE2_MATH__ 1' %t && +// RUN: grep '#define __SSE2__ 1' %t && +// RUN: grep '#define __SSE3__ 1' %t && +// RUN: grep '#define __SSE4_1__ 1' %t && +// RUN: grep '#define __SSE4_2__ 1' %t && +// RUN: grep '#define __SSE_MATH__ 1' %t && +// RUN: grep '#define __SSE__ 1' %t && +// RUN: grep '#define __SSSE3__ 1' %t && + +// RUN: clang -ccc-host-triple i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o %t %s && +// RUN: grep '#define __SSE2_MATH__ 1' %t | count 0 && +// RUN: grep '#define __SSE2__ 1' %t | count 0 && +// RUN: grep '#define __SSE3__ 1' %t | count 0 && +// RUN: grep '#define __SSE4_1__ 1' %t | count 0 && +// RUN: grep '#define __SSE4_2__ 1' %t | count 0 && +// RUN: grep '#define __SSE_MATH__ 1' %t && +// RUN: grep '#define __SSE__ 1' %t && +// RUN: grep '#define __SSSE3__ 1' %t | count 0 && + +// RUN: true + + |

