diff options
author | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
commit | 1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch) | |
tree | c607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c | |
parent | 283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff) | |
download | toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2 toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip |
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c new file mode 100644 index 000000000..112dd37fd --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/sse4_1-pextrq.c @@ -0,0 +1,45 @@ +/* { dg-do run { target { ! { ia32 } } } } */ +/* { dg-require-effective-target sse4 } */ +/* { dg-options "-O2 -msse4.1" } */ + +#ifndef CHECK_H +#define CHECK_H "sse4_1-check.h" +#endif + +#ifndef TEST +#define TEST sse4_1_test +#endif + +#include CHECK_H + +#include <smmintrin.h> + +#define msk0 0 +#define msk1 1 + +static void +__attribute__((noinline)) +TEST (void) +{ + union + { + __m128i x; + long long ll[2]; + } val1; + long long res[2]; + int masks[2]; + int i; + + val1.ll[0] = 0x0807060504030201LL; + val1.ll[1] = 0x100F0E0D0C0B0A09LL; + + res[0] = _mm_extract_epi64 (val1.x, msk0); + res[1] = _mm_extract_epi64 (val1.x, msk1); + + masks[0] = msk0; + masks[1] = msk1; + + for (i = 0; i < 2; i++) + if (res[i] != val1.ll [masks[i]]) + abort (); +} |