-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
/* { dg-add-options arm_v8_1m_mve_fp } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
float16_t
foo (float16x8_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
/* { dg-add-options arm_v8_1m_mve_fp } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
float32_t
foo (float32x4_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
int16_t
foo (int16x8_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
int32_t
foo (int32x4_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
-/* { dg-require-effective-target arm_hard_ok } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
-/* { dg-additional-options "-mfloat-abi=hard -O2" } */
+/* { dg-additional-options "-O2" } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
int64_t
foo (int64x2_t a)
{
return vgetq_lane_s64 (a, 0);
}
-
-/* { dg-final { scan-assembler {vmov\tr0, r1, d0} } } */
+/*
+** foo:
+** (
+ -mfloat-abi=softfp
+ no operation needed
+** |
+ -mfloat-abi=hard
+** vmov\tr0, r1, d0\t@ int
+** )
+** bx\tlr
+*/
int64_t
foo1 (int64x2_t a)
{
return vgetq_lane (a, 0);
}
+/*
+** foo1:
+** (
+ -mfloat-abi=softfp
+ no operation needed
+** |
+ -mfloat-abi=hard
+** vmov\tr0, r1, d0\t@ int
+** )
+** bx\tlr
+*/
-/* { dg-final { scan-assembler {vmov\tr0, r1, d0} } } */
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
int8_t
foo (int8x16_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
uint16_t
foo (uint16x8_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
uint32_t
foo (uint32x4_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
-/* { dg-require-effective-target arm_hard_ok } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
-/* { dg-additional-options "-mfloat-abi=hard -O2" } */
+/* { dg-additional-options "-O2" } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
uint64_t
foo (uint64x2_t a)
{
return vgetq_lane_u64 (a, 0);
}
-
-/* { dg-final { scan-assembler {vmov\tr0, r1, d0} } } */
+/*
+** foo:
+** (
+ -mfloat-abi=softfp
+ no operation needed
+** |
+ -mfloat-abi=hard
+** vmov\tr0, r1, d0\t@ int
+** )
+** bx\tlr
+*/
uint64_t
foo1 (uint64x2_t a)
{
return vgetq_lane (a, 0);
}
+/*
+** foo1:
+** (
+ -mfloat-abi=softfp
+ no operation needed
+** |
+ -mfloat-abi=hard
+** vmov\tr0, r1, d0\t@ int
+** )
+** bx\tlr
+*/
-/* { dg-final { scan-assembler {vmov\tr0, r1, d0} } } */
+#ifdef __cplusplus
+}
+#endif
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
/* { dg-add-options arm_v8_1m_mve } */
/* { dg-additional-options "-O2" } */
#include "arm_mve.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
uint8_t
foo (uint8x16_t a)
{
** )
** bx\tlr
*/
+
+#ifdef __cplusplus
+}
+#endif