blob: fe978bbe5f16e0bfe257a8d7821a80bcff1f8633 [file] [log] [blame]
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
#include "test_sve_acle.h"
/*
** st1_scatter_f64:
** st1d z0\.d, p0, \[z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_f64, svfloat64_t, svuint64_t,
svst1_scatter_u64base_f64 (p0, z1, z0),
svst1_scatter (p0, z1, z0))
/*
** st1_scatter_x0_f64_offset:
** st1d z0\.d, p0, \[x0, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_x0_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, x0, z0),
svst1_scatter_offset (p0, z1, x0, z0))
/*
** st1_scatter_m8_f64_offset:
** mov (x[0-9]+), #?-8
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_m8_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, -8, z0),
svst1_scatter_offset (p0, z1, -8, z0))
/*
** st1_scatter_0_f64_offset:
** st1d z0\.d, p0, \[z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_0_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 0, z0),
svst1_scatter_offset (p0, z1, 0, z0))
/*
** st1_scatter_9_f64_offset:
** mov (x[0-9]+), #?9
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_9_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 9, z0),
svst1_scatter_offset (p0, z1, 9, z0))
/*
** st1_scatter_10_f64_offset:
** mov (x[0-9]+), #?10
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_10_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 10, z0),
svst1_scatter_offset (p0, z1, 10, z0))
/*
** st1_scatter_11_f64_offset:
** mov (x[0-9]+), #?11
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_11_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 11, z0),
svst1_scatter_offset (p0, z1, 11, z0))
/*
** st1_scatter_12_f64_offset:
** mov (x[0-9]+), #?12
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_12_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 12, z0),
svst1_scatter_offset (p0, z1, 12, z0))
/*
** st1_scatter_13_f64_offset:
** mov (x[0-9]+), #?13
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_13_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 13, z0),
svst1_scatter_offset (p0, z1, 13, z0))
/*
** st1_scatter_14_f64_offset:
** mov (x[0-9]+), #?14
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_14_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 14, z0),
svst1_scatter_offset (p0, z1, 14, z0))
/*
** st1_scatter_15_f64_offset:
** mov (x[0-9]+), #?15
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_15_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 15, z0),
svst1_scatter_offset (p0, z1, 15, z0))
/*
** st1_scatter_16_f64_offset:
** st1d z0\.d, p0, \[z1\.d, #16\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_16_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 16, z0),
svst1_scatter_offset (p0, z1, 16, z0))
/*
** st1_scatter_248_f64_offset:
** st1d z0\.d, p0, \[z1\.d, #248\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_248_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 248, z0),
svst1_scatter_offset (p0, z1, 248, z0))
/*
** st1_scatter_256_f64_offset:
** mov (x[0-9]+), #?256
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_256_f64_offset, svfloat64_t, svuint64_t,
svst1_scatter_u64base_offset_f64 (p0, z1, 256, z0),
svst1_scatter_offset (p0, z1, 256, z0))
/*
** st1_scatter_x0_f64_index:
** lsl (x[0-9]+), x0, #?3
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_x0_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, x0, z0),
svst1_scatter_index (p0, z1, x0, z0))
/*
** st1_scatter_m1_f64_index:
** mov (x[0-9]+), #?-8
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_m1_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, -1, z0),
svst1_scatter_index (p0, z1, -1, z0))
/*
** st1_scatter_0_f64_index:
** st1d z0\.d, p0, \[z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_0_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, 0, z0),
svst1_scatter_index (p0, z1, 0, z0))
/*
** st1_scatter_5_f64_index:
** st1d z0\.d, p0, \[z1\.d, #40\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_5_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, 5, z0),
svst1_scatter_index (p0, z1, 5, z0))
/*
** st1_scatter_31_f64_index:
** st1d z0\.d, p0, \[z1\.d, #248\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_31_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, 31, z0),
svst1_scatter_index (p0, z1, 31, z0))
/*
** st1_scatter_32_f64_index:
** mov (x[0-9]+), #?256
** st1d z0\.d, p0, \[\1, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_ZS (st1_scatter_32_f64_index, svfloat64_t, svuint64_t,
svst1_scatter_u64base_index_f64 (p0, z1, 32, z0),
svst1_scatter_index (p0, z1, 32, z0))
/*
** st1_scatter_x0_f64_s64offset:
** st1d z0\.d, p0, \[x0, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_x0_f64_s64offset, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64offset_f64 (p0, x0, z1, z0),
svst1_scatter_offset (p0, x0, z1, z0))
/*
** st1_scatter_f64_s64offset:
** st1d z0\.d, p0, \[x0, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_f64_s64offset, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64offset_f64 (p0, x0, z1, z0),
svst1_scatter_offset (p0, x0, z1, z0))
/*
** st1_scatter_ext_f64_s64offset:
** st1d z0\.d, p0, \[x0, z1\.d, sxtw\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_ext_f64_s64offset, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64offset_f64 (p0, x0, svextw_s64_x (p0, z1), z0),
svst1_scatter_offset (p0, x0, svextw_x (p0, z1), z0))
/*
** st1_scatter_x0_f64_u64offset:
** st1d z0\.d, p0, \[x0, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_x0_f64_u64offset, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64offset_f64 (p0, x0, z1, z0),
svst1_scatter_offset (p0, x0, z1, z0))
/*
** st1_scatter_f64_u64offset:
** st1d z0\.d, p0, \[x0, z1\.d\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_f64_u64offset, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64offset_f64 (p0, x0, z1, z0),
svst1_scatter_offset (p0, x0, z1, z0))
/*
** st1_scatter_ext_f64_u64offset:
** st1d z0\.d, p0, \[x0, z1\.d, uxtw\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_ext_f64_u64offset, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64offset_f64 (p0, x0, svextw_u64_x (p0, z1), z0),
svst1_scatter_offset (p0, x0, svextw_x (p0, z1), z0))
/*
** st1_scatter_x0_f64_s64index:
** st1d z0\.d, p0, \[x0, z1\.d, lsl 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_x0_f64_s64index, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64index_f64 (p0, x0, z1, z0),
svst1_scatter_index (p0, x0, z1, z0))
/*
** st1_scatter_f64_s64index:
** st1d z0\.d, p0, \[x0, z1\.d, lsl 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_f64_s64index, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64index_f64 (p0, x0, z1, z0),
svst1_scatter_index (p0, x0, z1, z0))
/*
** st1_scatter_ext_f64_s64index:
** st1d z0\.d, p0, \[x0, z1\.d, sxtw 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_ext_f64_s64index, svfloat64_t, float64_t, svint64_t,
svst1_scatter_s64index_f64 (p0, x0, svextw_s64_x (p0, z1), z0),
svst1_scatter_index (p0, x0, svextw_x (p0, z1), z0))
/*
** st1_scatter_x0_f64_u64index:
** st1d z0\.d, p0, \[x0, z1\.d, lsl 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_x0_f64_u64index, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64index_f64 (p0, x0, z1, z0),
svst1_scatter_index (p0, x0, z1, z0))
/*
** st1_scatter_f64_u64index:
** st1d z0\.d, p0, \[x0, z1\.d, lsl 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_f64_u64index, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64index_f64 (p0, x0, z1, z0),
svst1_scatter_index (p0, x0, z1, z0))
/*
** st1_scatter_ext_f64_u64index:
** st1d z0\.d, p0, \[x0, z1\.d, uxtw 3\]
** ret
*/
TEST_STORE_SCATTER_SZ (st1_scatter_ext_f64_u64index, svfloat64_t, float64_t, svuint64_t,
svst1_scatter_u64index_f64 (p0, x0, svextw_u64_x (p0, z1), z0),
svst1_scatter_index (p0, x0, svextw_x (p0, z1), z0))