Viewing file: mve_vstore_scatter_base_p.c (2.45 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { 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"
mve_pred16_t __p;
int foows32(uint32x4_t pDataDest, int32x4_t value, int32_t * ret) { const uint32x4_t vecOffs1 = { 0, 3, 6, 1}; const uint32x4_t vecOffs2 = { 4, 7, 2, 5}; vstrwq_scatter_base_p_s32 (pDataDest, 4, value, __p); vstrwq_scatter_base_p_s32 (pDataDest, 132, value, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs1, (int32x4_t) pDataDest, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs2, (int32x4_t) pDataDest, __p); return 0; }
int foowu32(uint32x4_t pDataDest, uint32x4_t value, int32_t * ret) { const uint32x4_t vecOffs1 = { 0, 3, 6, 1}; const uint32x4_t vecOffs2 = { 4, 7, 2, 5}; vstrwq_scatter_base_p_u32 (pDataDest, 4, value, __p); vstrwq_scatter_base_p_u32 (pDataDest, 132, value, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs1, (int32x4_t) pDataDest, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs2, (int32x4_t) pDataDest, __p); return 0; }
int foowf32(uint32x4_t pDataDest, float32x4_t value, int32_t * ret) { const uint32x4_t vecOffs1 = { 0, 3, 6, 1}; const uint32x4_t vecOffs2 = { 4, 7, 2, 5}; vstrwq_scatter_base_p_f32 (pDataDest, 4, value, __p); vstrwq_scatter_base_p_f32 (pDataDest, 132, value, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs1, (int32x4_t) pDataDest, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs2, (int32x4_t) pDataDest, __p); return 0; }
int foods64(uint64x2_t pDataDest, int64x2_t value, int32_t * ret) { const uint32x4_t vecOffs1 = { 0, 3, 6, 1}; const uint32x4_t vecOffs2 = { 4, 7, 2, 5}; vstrdq_scatter_base_p_s64 (pDataDest, 256, value, __p); vstrdq_scatter_base_p_s64 (pDataDest, 512, value, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs1, (int32x4_t) pDataDest, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs2, (int32x4_t) pDataDest, __p); return 0; }
int foodu64(uint64x2_t pDataDest, uint64x2_t value, int32_t * ret) { const uint32x4_t vecOffs1 = { 0, 3, 6, 1}; const uint32x4_t vecOffs2 = { 4, 7, 2, 5}; vstrdq_scatter_base_p_u64 (pDataDest, 256, value, __p); vstrdq_scatter_base_p_u64 (pDataDest, 512, value, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs1, (int32x4_t) pDataDest, __p); vstrwq_scatter_offset_p_s32 (ret, vecOffs2, (int32x4_t) pDataDest, __p); return 0; }
/* { dg-final { scan-assembler-times "vstr\[a-z\]t" 20 } } */
|