mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 07:00:26 +08:00
Add execution tests of ARM EXT intrinsics
gcc.target/arm/simd/vextQf32_1.c: New file. gcc.target/arm/simd/vextQp16_1.c: New file. gcc.target/arm/simd/vextQp8_1.c: New file. gcc.target/arm/simd/vextQs16_1.c: New file. gcc.target/arm/simd/vextQs32_1.c: New file. gcc.target/arm/simd/vextQs64_1.c: New file. gcc.target/arm/simd/vextQs8_1.c: New file. gcc.target/arm/simd/vextQu16_1.c: New file. gcc.target/arm/simd/vextQu32_1.c: New file. gcc.target/arm/simd/vextQu64_1.c: New file. gcc.target/arm/simd/vextQu8_1.c: New file. gcc.target/arm/simd/vextQp64_1.c: New file. gcc.target/arm/simd/vextf32_1.c: New file. gcc.target/arm/simd/vextp16_1.c: New file. gcc.target/arm/simd/vextp8_1.c: New file. gcc.target/arm/simd/vexts16_1.c: New file. gcc.target/arm/simd/vexts32_1.c: New file. gcc.target/arm/simd/vexts64_1.c: New file. gcc.target/arm/simd/vexts8_1.c: New file. gcc.target/arm/simd/vextu16_1.c: New file. gcc.target/arm/simd/vextu32_1.c: New file. gcc.target/arm/simd/vextu64_1.c: New file. gcc.target/arm/simd/vextu8_1.c: New file. gcc.target/arm/simd/vextp64_1.c: New file. From-SVN: r211059
This commit is contained in:
parent
ae0533da54
commit
e4c03722c5
gcc/testsuite
@ -1,3 +1,30 @@
|
||||
2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
|
||||
|
||||
gcc.target/arm/simd/vextQf32_1.c: New file.
|
||||
gcc.target/arm/simd/vextQp16_1.c: New file.
|
||||
gcc.target/arm/simd/vextQp8_1.c: New file.
|
||||
gcc.target/arm/simd/vextQs16_1.c: New file.
|
||||
gcc.target/arm/simd/vextQs32_1.c: New file.
|
||||
gcc.target/arm/simd/vextQs64_1.c: New file.
|
||||
gcc.target/arm/simd/vextQs8_1.c: New file.
|
||||
gcc.target/arm/simd/vextQu16_1.c: New file.
|
||||
gcc.target/arm/simd/vextQu32_1.c: New file.
|
||||
gcc.target/arm/simd/vextQu64_1.c: New file.
|
||||
gcc.target/arm/simd/vextQu8_1.c: New file.
|
||||
gcc.target/arm/simd/vextQp64_1.c: New file.
|
||||
gcc.target/arm/simd/vextf32_1.c: New file.
|
||||
gcc.target/arm/simd/vextp16_1.c: New file.
|
||||
gcc.target/arm/simd/vextp8_1.c: New file.
|
||||
gcc.target/arm/simd/vexts16_1.c: New file.
|
||||
gcc.target/arm/simd/vexts32_1.c: New file.
|
||||
gcc.target/arm/simd/vexts64_1.c: New file.
|
||||
gcc.target/arm/simd/vexts8_1.c: New file.
|
||||
gcc.target/arm/simd/vextu16_1.c: New file.
|
||||
gcc.target/arm/simd/vextu32_1.c: New file.
|
||||
gcc.target/arm/simd/vextu64_1.c: New file.
|
||||
gcc.target/arm/simd/vextu8_1.c: New file.
|
||||
gcc.target/arm/simd/vextp64_1.c: New file.
|
||||
|
||||
2014-05-29 Radovan Obradovic <robradovic@mips.com>
|
||||
Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
|
12
gcc/testsuite/gcc.target/arm/simd/vextQf32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQf32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQf32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_f32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQp16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQp16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQp16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_p16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
33
gcc/testsuite/gcc.target/arm/simd/vextQp64_1.c
Normal file
33
gcc/testsuite/gcc.target/arm/simd/vextQp64_1.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Test the `vextQp64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_crypto_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_crypto } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
poly64x2_t
|
||||
test_vextq_p64_1 (poly64x2_t a, poly64x2_t b)
|
||||
{
|
||||
return vextq_p64(a, b, 1);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
int i, off;
|
||||
poly64x2_t in1 = {0, 1};
|
||||
poly64x2_t in2 = {2, 3};
|
||||
poly64x2_t actual = test_vextq_p64_1 (in1, in2);
|
||||
for (i = 0; i < 2; i++)
|
||||
if (actual[i] != i + 1)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.64\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQp8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQp8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQp8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_p8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 15 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQs16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQs16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQs16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_s16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQs32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQs32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQs32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_s32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQs64_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQs64_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQs64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_s64.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.64\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQs8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQs8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQs8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_s8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 15 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQu16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQu16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQu16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_u16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQu32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQu32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQu32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_u32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQu64_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQu64_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQu64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_u64.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.64\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextQu8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextQu8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextQu8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/extq_u8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 15 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextf32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextf32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextf32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_f32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextp16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextp16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextp16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_p16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
26
gcc/testsuite/gcc.target/arm/simd/vextp64_1.c
Normal file
26
gcc/testsuite/gcc.target/arm/simd/vextp64_1.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* Test the `vextp64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_crypto_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_crypto } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
poly64x1_t in1 = {0};
|
||||
poly64x1_t in2 = {1};
|
||||
poly64x1_t actual = vext_p64 (in1, in2, 0);
|
||||
if (actual != in1)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Don't scan assembler for vext - it can be optimized into a move from r0.
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextp8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextp8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextp8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_p8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vexts16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vexts16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vexts16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_s16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vexts32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vexts32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vexts32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_s32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vexts64_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vexts64_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vexts64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_s64.x"
|
||||
|
||||
/* Don't scan assembler for vext - it can be optimized into a move from r0. */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vexts8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vexts8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vexts8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_s8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextu16_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextu16_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextu16' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_u16.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.16\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 3 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextu32_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextu32_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextu32' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_u32.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.32\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextu64_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextu64_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextu64' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_u64.x"
|
||||
|
||||
/* Don't scan assembler for vext - it can be optimized into a move from r0. */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
12
gcc/testsuite/gcc.target/arm/simd/vextu8_1.c
Normal file
12
gcc/testsuite/gcc.target/arm/simd/vextu8_1.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Test the `vextu8' ARM Neon intrinsic. */
|
||||
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_neon_ok } */
|
||||
/* { dg-options "-save-temps -O3 -fno-inline" } */
|
||||
/* { dg-add-options arm_neon } */
|
||||
|
||||
#include "arm_neon.h"
|
||||
#include "../../aarch64/simd/ext_u8.x"
|
||||
|
||||
/* { dg-final { scan-assembler-times "vext\.8\[ \t\]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 7 } } */
|
||||
/* { dg-final { cleanup-saved-temps } } */
|
Loading…
x
Reference in New Issue
Block a user