neon-testgen.ml (effective_target): Handle "CRYPTO".

[gcc/]
2013-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon-testgen.ml (effective_target): Handle "CRYPTO".

[gcc/testsuite]
2013-12-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	 * lib/target-supports.exp (check_effective_target_arm_crypto_ok):
	 New procedure.
	 (add_options_for_arm_crypto): Likewise.
	 * gcc.target/arm/crypto-vaesdq_u8.c: New test.
	 * gcc.target/arm/crypto-vaeseq_u8.c: Likewise.
	 * gcc.target/arm/crypto-vaesimcq_u8.c: Likewise.
	 * gcc.target/arm/crypto-vaesmcq_u8.c: Likewise.
	 * gcc.target/arm/crypto-vldrq_p128.c: Likewise.
	 * gcc.target/arm/crypto-vmull_high_p64.c: Likewise.
	 * gcc.target/arm/crypto-vmullp64.c: Likewise.
	 * gcc.target/arm/crypto-vsha1cq_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha1h_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha1mq_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha1pq_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha1su0q_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha1su1q_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha256h2q_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha256hq_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha256su0q_u32.c: Likewise.
	 * gcc.target/arm/crypto-vsha256su1q_u32.c: Likewise.
	 * gcc.target/arm/crypto-vstrq_p128.c: Likewise.
	 * gcc.target/arm/neon/vbslQp64: Generate.
	 * gcc.target/arm/neon/vbslp64: Likewise.
	 * gcc.target/arm/neon/vcombinep64: Likewise.
	 * gcc.target/arm/neon/vcreatep64: Likewise.
	 * gcc.target/arm/neon/vdupQ_lanep64: Likewise.
	 * gcc.target/arm/neon/vdupQ_np64: Likewise.
	 * gcc.target/arm/neon/vdup_lanep64: Likewise.
	 * gcc.target/arm/neon/vdup_np64: Likewise.
	 * gcc.target/arm/neon/vextQp64: Likewise.
	 * gcc.target/arm/neon/vextp64: Likewise.
	 * gcc.target/arm/neon/vget_highp64: Likewise.
	 * gcc.target/arm/neon/vget_lowp64: Likewise.
	 * gcc.target/arm/neon/vld1Q_dupp64: Likewise.
	 * gcc.target/arm/neon/vld1Q_lanep64: Likewise.
	 * gcc.target/arm/neon/vld1Qp64: Likewise.
	 * gcc.target/arm/neon/vld1_dupp64: Likewise.
	 * gcc.target/arm/neon/vld1_lanep64: Likewise.
	 * gcc.target/arm/neon/vld1p64: Likewise.
	 * gcc.target/arm/neon/vld2_dupp64: Likewise.
	 * gcc.target/arm/neon/vld2p64: Likewise.
	 * gcc.target/arm/neon/vld3_dupp64: Likewise.
	 * gcc.target/arm/neon/vld3p64: Likewise.
	 * gcc.target/arm/neon/vld4_dupp64: Likewise.
	 * gcc.target/arm/neon/vld4p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQf32_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQf32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_f32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_p16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_p8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_s16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_s32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_s64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_s8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_u16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_u32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_u64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp128_u8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp16_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_f32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_p16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_p8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_s16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_s32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_s64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_s8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_u16: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_u32: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_u64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp64_u8: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp8_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQp8_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs16_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs32_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs64_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs64_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs8_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQs8_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu16_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu32_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu64_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu64_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu8_p128: Likewise.
	 * gcc.target/arm/neon/vreinterpretQu8_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretf32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretp16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_f32: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_p16: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_p8: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_s16: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_s32: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_s64: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_s8: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_u16: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_u32: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_u64: Likewise.
	 * gcc.target/arm/neon/vreinterpretp64_u8: Likewise.
	 * gcc.target/arm/neon/vreinterpretp8_p64: Likewise.
	 * gcc.target/arm/neon/vreinterprets16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterprets32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterprets64_p64: Likewise.
	 * gcc.target/arm/neon/vreinterprets8_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretu16_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretu32_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretu64_p64: Likewise.
	 * gcc.target/arm/neon/vreinterpretu8_p64: Likewise.
	 * gcc.target/arm/neon/vsliQ_np64: Likewise.
	 * gcc.target/arm/neon/vsli_np64: Likewise.
	 * gcc.target/arm/neon/vsriQ_np64: Likewise.
	 * gcc.target/arm/neon/vsri_np64: Likewise.
	 * gcc.target/arm/neon/vst1Q_lanep64: Likewise.
	 * gcc.target/arm/neon/vst1Qp64: Likewise.
	 * gcc.target/arm/neon/vst1_lanep64: Likewise.
	 * gcc.target/arm/neon/vst1p64: Likewise.
	 * gcc.target/arm/neon/vst2p64: Likewise.
	 * gcc.target/arm/neon/vst3p64: Likewise.
	 * gcc.target/arm/neon/vst4p64: Likewise.

From-SVN: r206131
This commit is contained in:
Kyrylo Tkachov 2013-12-19 18:29:09 +00:00 committed by Kyrylo Tkachov
parent 021b5e6b54
commit ed4bcdba7c
125 changed files with 2456 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/neon-testgen.ml (effective_target): Handle "CRYPTO".
2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (enum arm_builtins): Add crypto builtins.

View File

@ -167,6 +167,7 @@ let effective_target features =
| _ -> false)
features with
Requires_feature "FMA" -> "arm_neonv2"
| Requires_feature "CRYPTO" -> "arm_crypto"
| Requires_arch 8 -> "arm_v8_neon"
| Requires_FP_bit 1 -> "arm_neon_fp16"
| _ -> assert false
@ -300,5 +301,5 @@ let test_intrinsic_group dir (opcode, features, shape, name, munge, types) =
(* Program entry point. *)
let _ =
let directory = if Array.length Sys.argv <> 1 then Sys.argv.(1) else "." in
List.iter (test_intrinsic_group directory) (reinterp @ ops)
List.iter (test_intrinsic_group directory) (reinterp @ reinterpq @ ops)

View File

@ -1,3 +1,130 @@
2013-12-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (check_effective_target_arm_crypto_ok):
New procedure.
(add_options_for_arm_crypto): Likewise.
* gcc.target/arm/crypto-vaesdq_u8.c: New test.
* gcc.target/arm/crypto-vaeseq_u8.c: Likewise.
* gcc.target/arm/crypto-vaesimcq_u8.c: Likewise.
* gcc.target/arm/crypto-vaesmcq_u8.c: Likewise.
* gcc.target/arm/crypto-vldrq_p128.c: Likewise.
* gcc.target/arm/crypto-vmull_high_p64.c: Likewise.
* gcc.target/arm/crypto-vmullp64.c: Likewise.
* gcc.target/arm/crypto-vsha1cq_u32.c: Likewise.
* gcc.target/arm/crypto-vsha1h_u32.c: Likewise.
* gcc.target/arm/crypto-vsha1mq_u32.c: Likewise.
* gcc.target/arm/crypto-vsha1pq_u32.c: Likewise.
* gcc.target/arm/crypto-vsha1su0q_u32.c: Likewise.
* gcc.target/arm/crypto-vsha1su1q_u32.c: Likewise.
* gcc.target/arm/crypto-vsha256h2q_u32.c: Likewise.
* gcc.target/arm/crypto-vsha256hq_u32.c: Likewise.
* gcc.target/arm/crypto-vsha256su0q_u32.c: Likewise.
* gcc.target/arm/crypto-vsha256su1q_u32.c: Likewise.
* gcc.target/arm/crypto-vstrq_p128.c: Likewise.
* gcc.target/arm/neon/vbslQp64: Generate.
* gcc.target/arm/neon/vbslp64: Likewise.
* gcc.target/arm/neon/vcombinep64: Likewise.
* gcc.target/arm/neon/vcreatep64: Likewise.
* gcc.target/arm/neon/vdupQ_lanep64: Likewise.
* gcc.target/arm/neon/vdupQ_np64: Likewise.
* gcc.target/arm/neon/vdup_lanep64: Likewise.
* gcc.target/arm/neon/vdup_np64: Likewise.
* gcc.target/arm/neon/vextQp64: Likewise.
* gcc.target/arm/neon/vextp64: Likewise.
* gcc.target/arm/neon/vget_highp64: Likewise.
* gcc.target/arm/neon/vget_lowp64: Likewise.
* gcc.target/arm/neon/vld1Q_dupp64: Likewise.
* gcc.target/arm/neon/vld1Q_lanep64: Likewise.
* gcc.target/arm/neon/vld1Qp64: Likewise.
* gcc.target/arm/neon/vld1_dupp64: Likewise.
* gcc.target/arm/neon/vld1_lanep64: Likewise.
* gcc.target/arm/neon/vld1p64: Likewise.
* gcc.target/arm/neon/vld2_dupp64: Likewise.
* gcc.target/arm/neon/vld2p64: Likewise.
* gcc.target/arm/neon/vld3_dupp64: Likewise.
* gcc.target/arm/neon/vld3p64: Likewise.
* gcc.target/arm/neon/vld4_dupp64: Likewise.
* gcc.target/arm/neon/vld4p64: Likewise.
* gcc.target/arm/neon/vreinterpretQf32_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQf32_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_f32: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_p16: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_p8: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_s16: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_s32: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_s64: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_s8: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_u16: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_u32: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_u64: Likewise.
* gcc.target/arm/neon/vreinterpretQp128_u8: Likewise.
* gcc.target/arm/neon/vreinterpretQp16_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQp16_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_f32: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_p16: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_p8: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_s16: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_s32: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_s64: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_s8: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_u16: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_u32: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_u64: Likewise.
* gcc.target/arm/neon/vreinterpretQp64_u8: Likewise.
* gcc.target/arm/neon/vreinterpretQp8_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQp8_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQs16_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQs16_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQs32_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQs32_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQs64_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQs64_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQs8_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQs8_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQu16_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQu16_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQu32_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQu32_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQu64_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQu64_p64: Likewise.
* gcc.target/arm/neon/vreinterpretQu8_p128: Likewise.
* gcc.target/arm/neon/vreinterpretQu8_p64: Likewise.
* gcc.target/arm/neon/vreinterpretf32_p64: Likewise.
* gcc.target/arm/neon/vreinterpretp16_p64: Likewise.
* gcc.target/arm/neon/vreinterpretp64_f32: Likewise.
* gcc.target/arm/neon/vreinterpretp64_p16: Likewise.
* gcc.target/arm/neon/vreinterpretp64_p8: Likewise.
* gcc.target/arm/neon/vreinterpretp64_s16: Likewise.
* gcc.target/arm/neon/vreinterpretp64_s32: Likewise.
* gcc.target/arm/neon/vreinterpretp64_s64: Likewise.
* gcc.target/arm/neon/vreinterpretp64_s8: Likewise.
* gcc.target/arm/neon/vreinterpretp64_u16: Likewise.
* gcc.target/arm/neon/vreinterpretp64_u32: Likewise.
* gcc.target/arm/neon/vreinterpretp64_u64: Likewise.
* gcc.target/arm/neon/vreinterpretp64_u8: Likewise.
* gcc.target/arm/neon/vreinterpretp8_p64: Likewise.
* gcc.target/arm/neon/vreinterprets16_p64: Likewise.
* gcc.target/arm/neon/vreinterprets32_p64: Likewise.
* gcc.target/arm/neon/vreinterprets64_p64: Likewise.
* gcc.target/arm/neon/vreinterprets8_p64: Likewise.
* gcc.target/arm/neon/vreinterpretu16_p64: Likewise.
* gcc.target/arm/neon/vreinterpretu32_p64: Likewise.
* gcc.target/arm/neon/vreinterpretu64_p64: Likewise.
* gcc.target/arm/neon/vreinterpretu8_p64: Likewise.
* gcc.target/arm/neon/vsliQ_np64: Likewise.
* gcc.target/arm/neon/vsli_np64: Likewise.
* gcc.target/arm/neon/vsriQ_np64: Likewise.
* gcc.target/arm/neon/vsri_np64: Likewise.
* gcc.target/arm/neon/vst1Q_lanep64: Likewise.
* gcc.target/arm/neon/vst1Qp64: Likewise.
* gcc.target/arm/neon/vst1_lanep64: Likewise.
* gcc.target/arm/neon/vst1p64: Likewise.
* gcc.target/arm/neon/vst2p64: Likewise.
* gcc.target/arm/neon/vst3p64: Likewise.
* gcc.target/arm/neon/vst4p64: Likewise.
2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (add_options_for_arm_crc): New procedure.

View File

@ -0,0 +1,22 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint8x16_t a, b, c;
int i = 0;
for (i = 0; i < 16; ++i)
{
a[i] = i;
b[i] = 15 - i;
}
c = vaesdq_u8 (a, b);
return c[0];
}
/* { dg-final { scan-assembler "aesd.8\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,22 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint8x16_t a, b, c;
int i = 0;
for (i = 0; i < 16; ++i)
{
a[i] = i;
b[i] = 15 - i;
}
c = vaeseq_u8 (a, b);
return c[0];
}
/* { dg-final { scan-assembler "aese.8\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,20 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint8x16_t a, b;
int i = 0;
for (i = 0; i < 16; ++i)
a[i] = i;
b = vaesimcq_u8 (a);
return b[0];
}
/* { dg-final { scan-assembler "aesimc.8\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,20 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint8x16_t a, b;
int i = 0;
for (i = 0; i < 16; ++i)
a[i] = i;
b = vaesmcq_u8 (a);
return b[0];
}
/* { dg-final { scan-assembler "aesmc.8\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,13 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
poly128_t
foo (poly128_t* ptr)
{
return vldrq_p128 (ptr);
}
/* { dg-final { scan-assembler "vld1.64\t{d\[0-9\]+-d\[0-9\]+}.*" } } */

View File

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
poly128_t
foo (void)
{
poly64x2_t a = { 0xdeadbeef, 0xadabcaca };
poly64x2_t b = { 0xdcdcdcdc, 0xbdbdbdbd };
return vmull_high_p64 (a, b);
}
/* { dg-final { scan-assembler "vmull.p64.*" } } */

View File

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
poly128_t
foo (void)
{
poly64_t a = 0xdeadbeef;
poly64_t b = 0xadadadad;
return vmull_p64 (a, b);
}
/* { dg-final { scan-assembler "vmull.p64.*" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32_t hash = 0xdeadbeef;
uint32x4_t a = {0, 1, 2, 3};
uint32x4_t b = {3, 2, 1, 0};
uint32x4_t res = vsha1cq_u32 (a, hash, b);
return res[0];
}
/* { dg-final { scan-assembler "sha1c.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,14 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32_t val = 0xdeadbeef;
return vsha1h_u32 (val);
}
/* { dg-final { scan-assembler "sha1h.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32_t hash = 0xdeadbeef;
uint32x4_t a = {0, 1, 2, 3};
uint32x4_t b = {3, 2, 1, 0};
uint32x4_t res = vsha1mq_u32 (a, hash, b);
return res[0];
}
/* { dg-final { scan-assembler "sha1m.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32_t hash = 0xdeadbeef;
uint32x4_t a = {0, 1, 2, 3};
uint32x4_t b = {3, 2, 1, 0};
uint32x4_t res = vsha1pq_u32 (a, hash, b);
return res[0];
}
/* { dg-final { scan-assembler "sha1p.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t c = {3, 2, 1, 0};
uint32x4_t res = vsha1su0q_u32 (a, b, c);
return res[0];
}
/* { dg-final { scan-assembler "sha1su0.32\tq\[0-9\]+, q\[0-9\]+, q\[0-9\]" } } */

View File

@ -0,0 +1,17 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t res = vsha1su1q_u32 (a, b);
return res[0];
}
/* { dg-final { scan-assembler "sha1su1.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t c = {3, 2, 1, 0};
uint32x4_t res = vsha256h2q_u32 (a, b, c);
return res[0];
}
/* { dg-final { scan-assembler "sha256h2.32\tq\[0-9\]+, q\[0-9\]+, q\[0-9\]" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t c = {3, 2, 1, 0};
uint32x4_t res = vsha256hq_u32 (a, b, c);
return res[0];
}
/* { dg-final { scan-assembler "sha256h.32\tq\[0-9\]+, q\[0-9\]+, q\[0-9\]" } } */

View File

@ -0,0 +1,17 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t res = vsha256su0q_u32 (a, b);
return res[0];
}
/* { dg-final { scan-assembler "sha256su0.32\tq\[0-9\]+, q\[0-9\]+" } } */

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
int
foo (void)
{
uint32x4_t a = {0xd, 0xe, 0xa, 0xd};
uint32x4_t b = {0, 1, 2, 3};
uint32x4_t c = {3, 2, 1, 0};
uint32x4_t res = vsha256su1q_u32 (a, b, c);
return res[0];
}
/* { dg-final { scan-assembler "sha256su1.32\tq\[0-9\]+, q\[0-9\]+, q\[0-9\]" } } */

View File

@ -0,0 +1,13 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void
foo (poly128_t* ptr, poly128_t val)
{
vstrq_p128 (ptr, val);
}
/* { dg-final { scan-assembler "vst1.64\t{d\[0-9\]+-d\[0-9\]+}.*" } } */

View File

@ -0,0 +1,22 @@
/* Test the `vbslQp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vbslQp64 (void)
{
poly64x2_t out_poly64x2_t;
uint64x2_t arg0_uint64x2_t;
poly64x2_t arg1_poly64x2_t;
poly64x2_t arg2_poly64x2_t;
out_poly64x2_t = vbslq_p64 (arg0_uint64x2_t, arg1_poly64x2_t, arg2_poly64x2_t);
}
/* { dg-final { scan-assembler "((vbsl)|(vbit)|(vbif))\[ \]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,22 @@
/* Test the `vbslp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vbslp64 (void)
{
poly64x1_t out_poly64x1_t;
uint64x1_t arg0_uint64x1_t;
poly64x1_t arg1_poly64x1_t;
poly64x1_t arg2_poly64x1_t;
out_poly64x1_t = vbsl_p64 (arg0_uint64x1_t, arg1_poly64x1_t, arg2_poly64x1_t);
}
/* { dg-final { scan-assembler "((vbsl)|(vbit)|(vbif))\[ \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,20 @@
/* Test the `vcombinep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vcombinep64 (void)
{
poly64x2_t out_poly64x2_t;
poly64x1_t arg0_poly64x1_t;
poly64x1_t arg1_poly64x1_t;
out_poly64x2_t = vcombine_p64 (arg0_poly64x1_t, arg1_poly64x1_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vcreatep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vcreatep64 (void)
{
poly64x1_t out_poly64x1_t;
uint64_t arg0_uint64_t;
out_poly64x1_t = vcreate_p64 (arg0_uint64_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vdupQ_lanep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vdupQ_lanep64 (void)
{
poly64x2_t out_poly64x2_t;
poly64x1_t arg0_poly64x1_t;
out_poly64x2_t = vdupq_lane_p64 (arg0_poly64x1_t, 0);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vdupQ_np64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vdupQ_np64 (void)
{
poly64x2_t out_poly64x2_t;
poly64_t arg0_poly64_t;
out_poly64x2_t = vdupq_n_p64 (arg0_poly64_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vdup_lanep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vdup_lanep64 (void)
{
poly64x1_t out_poly64x1_t;
poly64x1_t arg0_poly64x1_t;
out_poly64x1_t = vdup_lane_p64 (arg0_poly64x1_t, 0);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vdup_np64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vdup_np64 (void)
{
poly64x1_t out_poly64x1_t;
poly64_t arg0_poly64_t;
out_poly64x1_t = vdup_n_p64 (arg0_poly64_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,21 @@
/* Test the `vextQp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vextQp64 (void)
{
poly64x2_t out_poly64x2_t;
poly64x2_t arg0_poly64x2_t;
poly64x2_t arg1_poly64x2_t;
out_poly64x2_t = vextq_p64 (arg0_poly64x2_t, arg1_poly64x2_t, 0);
}
/* { dg-final { scan-assembler "vext\.64\[ \]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,21 @@
/* Test the `vextp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vextp64 (void)
{
poly64x1_t out_poly64x1_t;
poly64x1_t arg0_poly64x1_t;
poly64x1_t arg1_poly64x1_t;
out_poly64x1_t = vext_p64 (arg0_poly64x1_t, arg1_poly64x1_t, 0);
}
/* { dg-final { scan-assembler "vext\.64\[ \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vget_highp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vget_highp64 (void)
{
poly64x1_t out_poly64x1_t;
poly64x2_t arg0_poly64x2_t;
out_poly64x1_t = vget_high_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vget_lowp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vget_lowp64 (void)
{
poly64x1_t out_poly64x1_t;
poly64x2_t arg0_poly64x2_t;
out_poly64x1_t = vget_low_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld1Q_dupp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1Q_dupp64 (void)
{
poly64x2_t out_poly64x2_t;
out_poly64x2_t = vld1q_dup_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,20 @@
/* Test the `vld1Q_lanep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1Q_lanep64 (void)
{
poly64x2_t out_poly64x2_t;
poly64x2_t arg1_poly64x2_t;
out_poly64x2_t = vld1q_lane_p64 (0, arg1_poly64x2_t, 1);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld1Qp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1Qp64 (void)
{
poly64x2_t out_poly64x2_t;
out_poly64x2_t = vld1q_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld1_dupp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1_dupp64 (void)
{
poly64x1_t out_poly64x1_t;
out_poly64x1_t = vld1_dup_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,20 @@
/* Test the `vld1_lanep64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1_lanep64 (void)
{
poly64x1_t out_poly64x1_t;
poly64x1_t arg1_poly64x1_t;
out_poly64x1_t = vld1_lane_p64 (0, arg1_poly64x1_t, 0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld1p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld1p64 (void)
{
poly64x1_t out_poly64x1_t;
out_poly64x1_t = vld1_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+((\\\{\[dD\]\[0-9\]+\\\})|(\[dD\]\[0-9\]+)), \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld2_dupp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld2_dupp64 (void)
{
poly64x1x2_t out_poly64x1x2_t;
out_poly64x1x2_t = vld2_dup_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld2p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld2p64 (void)
{
poly64x1x2_t out_poly64x1x2_t;
out_poly64x1x2_t = vld2_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld3_dupp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld3_dupp64 (void)
{
poly64x1x3_t out_poly64x1x3_t;
out_poly64x1x3_t = vld3_dup_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld3p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld3p64 (void)
{
poly64x1x3_t out_poly64x1x3_t;
out_poly64x1x3_t = vld3_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld4_dupp64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld4_dupp64 (void)
{
poly64x1x4_t out_poly64x1x4_t;
out_poly64x1x4_t = vld4_dup_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vld4p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vld4p64 (void)
{
poly64x1x4_t out_poly64x1x4_t;
out_poly64x1x4_t = vld4_p64 (0);
}
/* { dg-final { scan-assembler "vld1\.64\[ \]+\\\{((\[dD\]\[0-9\]+-\[dD\]\[0-9\]+)|(\[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+, \[dD\]\[0-9\]+))\\\}, \\\[\[rR\]\[0-9\]+\(:\[0-9\]+\)?\\\]!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQf32_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQf32_p128 (void)
{
float32x4_t out_float32x4_t;
poly128_t arg0_poly128_t;
out_float32x4_t = vreinterpretq_f32_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQf32_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQf32_p64 (void)
{
float32x4_t out_float32x4_t;
poly64x2_t arg0_poly64x2_t;
out_float32x4_t = vreinterpretq_f32_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_f32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_f32 (void)
{
poly128_t out_poly128_t;
float32x4_t arg0_float32x4_t;
out_poly128_t = vreinterpretq_p128_f32 (arg0_float32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_p16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_p16 (void)
{
poly128_t out_poly128_t;
poly16x8_t arg0_poly16x8_t;
out_poly128_t = vreinterpretq_p128_p16 (arg0_poly16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_p64 (void)
{
poly128_t out_poly128_t;
poly64x2_t arg0_poly64x2_t;
out_poly128_t = vreinterpretq_p128_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_p8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_p8 (void)
{
poly128_t out_poly128_t;
poly8x16_t arg0_poly8x16_t;
out_poly128_t = vreinterpretq_p128_p8 (arg0_poly8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_s16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_s16 (void)
{
poly128_t out_poly128_t;
int16x8_t arg0_int16x8_t;
out_poly128_t = vreinterpretq_p128_s16 (arg0_int16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_s32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_s32 (void)
{
poly128_t out_poly128_t;
int32x4_t arg0_int32x4_t;
out_poly128_t = vreinterpretq_p128_s32 (arg0_int32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_s64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_s64 (void)
{
poly128_t out_poly128_t;
int64x2_t arg0_int64x2_t;
out_poly128_t = vreinterpretq_p128_s64 (arg0_int64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_s8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_s8 (void)
{
poly128_t out_poly128_t;
int8x16_t arg0_int8x16_t;
out_poly128_t = vreinterpretq_p128_s8 (arg0_int8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_u16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_u16 (void)
{
poly128_t out_poly128_t;
uint16x8_t arg0_uint16x8_t;
out_poly128_t = vreinterpretq_p128_u16 (arg0_uint16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_u32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_u32 (void)
{
poly128_t out_poly128_t;
uint32x4_t arg0_uint32x4_t;
out_poly128_t = vreinterpretq_p128_u32 (arg0_uint32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_u64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_u64 (void)
{
poly128_t out_poly128_t;
uint64x2_t arg0_uint64x2_t;
out_poly128_t = vreinterpretq_p128_u64 (arg0_uint64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp128_u8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp128_u8 (void)
{
poly128_t out_poly128_t;
uint8x16_t arg0_uint8x16_t;
out_poly128_t = vreinterpretq_p128_u8 (arg0_uint8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp16_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp16_p128 (void)
{
poly16x8_t out_poly16x8_t;
poly128_t arg0_poly128_t;
out_poly16x8_t = vreinterpretq_p16_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp16_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp16_p64 (void)
{
poly16x8_t out_poly16x8_t;
poly64x2_t arg0_poly64x2_t;
out_poly16x8_t = vreinterpretq_p16_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_f32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_f32 (void)
{
poly64x2_t out_poly64x2_t;
float32x4_t arg0_float32x4_t;
out_poly64x2_t = vreinterpretq_p64_f32 (arg0_float32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_p128 (void)
{
poly64x2_t out_poly64x2_t;
poly128_t arg0_poly128_t;
out_poly64x2_t = vreinterpretq_p64_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_p16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_p16 (void)
{
poly64x2_t out_poly64x2_t;
poly16x8_t arg0_poly16x8_t;
out_poly64x2_t = vreinterpretq_p64_p16 (arg0_poly16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_p8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_p8 (void)
{
poly64x2_t out_poly64x2_t;
poly8x16_t arg0_poly8x16_t;
out_poly64x2_t = vreinterpretq_p64_p8 (arg0_poly8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_s16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_s16 (void)
{
poly64x2_t out_poly64x2_t;
int16x8_t arg0_int16x8_t;
out_poly64x2_t = vreinterpretq_p64_s16 (arg0_int16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_s32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_s32 (void)
{
poly64x2_t out_poly64x2_t;
int32x4_t arg0_int32x4_t;
out_poly64x2_t = vreinterpretq_p64_s32 (arg0_int32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_s64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_s64 (void)
{
poly64x2_t out_poly64x2_t;
int64x2_t arg0_int64x2_t;
out_poly64x2_t = vreinterpretq_p64_s64 (arg0_int64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_s8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_s8 (void)
{
poly64x2_t out_poly64x2_t;
int8x16_t arg0_int8x16_t;
out_poly64x2_t = vreinterpretq_p64_s8 (arg0_int8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_u16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_u16 (void)
{
poly64x2_t out_poly64x2_t;
uint16x8_t arg0_uint16x8_t;
out_poly64x2_t = vreinterpretq_p64_u16 (arg0_uint16x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_u32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_u32 (void)
{
poly64x2_t out_poly64x2_t;
uint32x4_t arg0_uint32x4_t;
out_poly64x2_t = vreinterpretq_p64_u32 (arg0_uint32x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_u64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_u64 (void)
{
poly64x2_t out_poly64x2_t;
uint64x2_t arg0_uint64x2_t;
out_poly64x2_t = vreinterpretq_p64_u64 (arg0_uint64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp64_u8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp64_u8 (void)
{
poly64x2_t out_poly64x2_t;
uint8x16_t arg0_uint8x16_t;
out_poly64x2_t = vreinterpretq_p64_u8 (arg0_uint8x16_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp8_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp8_p128 (void)
{
poly8x16_t out_poly8x16_t;
poly128_t arg0_poly128_t;
out_poly8x16_t = vreinterpretq_p8_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQp8_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQp8_p64 (void)
{
poly8x16_t out_poly8x16_t;
poly64x2_t arg0_poly64x2_t;
out_poly8x16_t = vreinterpretq_p8_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs16_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs16_p128 (void)
{
int16x8_t out_int16x8_t;
poly128_t arg0_poly128_t;
out_int16x8_t = vreinterpretq_s16_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs16_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs16_p64 (void)
{
int16x8_t out_int16x8_t;
poly64x2_t arg0_poly64x2_t;
out_int16x8_t = vreinterpretq_s16_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs32_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs32_p128 (void)
{
int32x4_t out_int32x4_t;
poly128_t arg0_poly128_t;
out_int32x4_t = vreinterpretq_s32_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs32_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs32_p64 (void)
{
int32x4_t out_int32x4_t;
poly64x2_t arg0_poly64x2_t;
out_int32x4_t = vreinterpretq_s32_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs64_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs64_p128 (void)
{
int64x2_t out_int64x2_t;
poly128_t arg0_poly128_t;
out_int64x2_t = vreinterpretq_s64_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs64_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs64_p64 (void)
{
int64x2_t out_int64x2_t;
poly64x2_t arg0_poly64x2_t;
out_int64x2_t = vreinterpretq_s64_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs8_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs8_p128 (void)
{
int8x16_t out_int8x16_t;
poly128_t arg0_poly128_t;
out_int8x16_t = vreinterpretq_s8_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQs8_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQs8_p64 (void)
{
int8x16_t out_int8x16_t;
poly64x2_t arg0_poly64x2_t;
out_int8x16_t = vreinterpretq_s8_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu16_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu16_p128 (void)
{
uint16x8_t out_uint16x8_t;
poly128_t arg0_poly128_t;
out_uint16x8_t = vreinterpretq_u16_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu16_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu16_p64 (void)
{
uint16x8_t out_uint16x8_t;
poly64x2_t arg0_poly64x2_t;
out_uint16x8_t = vreinterpretq_u16_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu32_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu32_p128 (void)
{
uint32x4_t out_uint32x4_t;
poly128_t arg0_poly128_t;
out_uint32x4_t = vreinterpretq_u32_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu32_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu32_p64 (void)
{
uint32x4_t out_uint32x4_t;
poly64x2_t arg0_poly64x2_t;
out_uint32x4_t = vreinterpretq_u32_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu64_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu64_p128 (void)
{
uint64x2_t out_uint64x2_t;
poly128_t arg0_poly128_t;
out_uint64x2_t = vreinterpretq_u64_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu64_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu64_p64 (void)
{
uint64x2_t out_uint64x2_t;
poly64x2_t arg0_poly64x2_t;
out_uint64x2_t = vreinterpretq_u64_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu8_p128' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu8_p128 (void)
{
uint8x16_t out_uint8x16_t;
poly128_t arg0_poly128_t;
out_uint8x16_t = vreinterpretq_u8_p128 (arg0_poly128_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretQu8_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretQu8_p64 (void)
{
uint8x16_t out_uint8x16_t;
poly64x2_t arg0_poly64x2_t;
out_uint8x16_t = vreinterpretq_u8_p64 (arg0_poly64x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretf32_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretf32_p64 (void)
{
float32x2_t out_float32x2_t;
poly64x1_t arg0_poly64x1_t;
out_float32x2_t = vreinterpret_f32_p64 (arg0_poly64x1_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp16_p64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp16_p64 (void)
{
poly16x4_t out_poly16x4_t;
poly64x1_t arg0_poly64x1_t;
out_poly16x4_t = vreinterpret_p16_p64 (arg0_poly64x1_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_f32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_f32 (void)
{
poly64x1_t out_poly64x1_t;
float32x2_t arg0_float32x2_t;
out_poly64x1_t = vreinterpret_p64_f32 (arg0_float32x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_p16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_p16 (void)
{
poly64x1_t out_poly64x1_t;
poly16x4_t arg0_poly16x4_t;
out_poly64x1_t = vreinterpret_p64_p16 (arg0_poly16x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_p8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_p8 (void)
{
poly64x1_t out_poly64x1_t;
poly8x8_t arg0_poly8x8_t;
out_poly64x1_t = vreinterpret_p64_p8 (arg0_poly8x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_s16' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_s16 (void)
{
poly64x1_t out_poly64x1_t;
int16x4_t arg0_int16x4_t;
out_poly64x1_t = vreinterpret_p64_s16 (arg0_int16x4_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_s32' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_s32 (void)
{
poly64x1_t out_poly64x1_t;
int32x2_t arg0_int32x2_t;
out_poly64x1_t = vreinterpret_p64_s32 (arg0_int32x2_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_s64' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_s64 (void)
{
poly64x1_t out_poly64x1_t;
int64x1_t arg0_int64x1_t;
out_poly64x1_t = vreinterpret_p64_s64 (arg0_int64x1_t);
}
/* { dg-final { cleanup-saved-temps } } */

View File

@ -0,0 +1,19 @@
/* Test the `vreinterpretp64_s8' ARM Neon intrinsic. */
/* This file was autogenerated by neon-testgen. */
/* { dg-do assemble } */
/* { dg-require-effective-target arm_crypto_ok } */
/* { dg-options "-save-temps -O0" } */
/* { dg-add-options arm_crypto } */
#include "arm_neon.h"
void test_vreinterpretp64_s8 (void)
{
poly64x1_t out_poly64x1_t;
int8x8_t arg0_int8x8_t;
out_poly64x1_t = vreinterpret_p64_s8 (arg0_int8x8_t);
}
/* { dg-final { cleanup-saved-temps } } */

Some files were not shown because too many files have changed in this diff Show More