blob: ed07b4dfcfab23f4f544ca32cf7fee0261404bb2 [file] [log] [blame]
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
#include "test_sve_acle.h"
/*
** ld1sh_gather_s32_tied1:
** ld1sh z0\.s, p0/z, \[z0\.s\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_s32_tied1, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_s32 (p0, z0),
z0_res = svld1sh_gather_s32 (p0, z0))
/*
** ld1sh_gather_s32_untied:
** ld1sh z0\.s, p0/z, \[z1\.s\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_s32_untied, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_s32 (p0, z1),
z0_res = svld1sh_gather_s32 (p0, z1))
/*
** ld1sh_gather_x0_s32_offset:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_x0_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, x0),
z0_res = svld1sh_gather_offset_s32 (p0, z0, x0))
/*
** ld1sh_gather_m2_s32_offset:
** mov (x[0-9]+), #?-2
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_m2_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, -2),
z0_res = svld1sh_gather_offset_s32 (p0, z0, -2))
/*
** ld1sh_gather_0_s32_offset:
** ld1sh z0\.s, p0/z, \[z0\.s\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_0_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, 0),
z0_res = svld1sh_gather_offset_s32 (p0, z0, 0))
/*
** ld1sh_gather_5_s32_offset:
** mov (x[0-9]+), #?5
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_5_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, 5),
z0_res = svld1sh_gather_offset_s32 (p0, z0, 5))
/*
** ld1sh_gather_6_s32_offset:
** ld1sh z0\.s, p0/z, \[z0\.s, #6\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_6_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, 6),
z0_res = svld1sh_gather_offset_s32 (p0, z0, 6))
/*
** ld1sh_gather_62_s32_offset:
** ld1sh z0\.s, p0/z, \[z0\.s, #62\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_62_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, 62),
z0_res = svld1sh_gather_offset_s32 (p0, z0, 62))
/*
** ld1sh_gather_64_s32_offset:
** mov (x[0-9]+), #?64
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_64_s32_offset, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_offset_s32 (p0, z0, 64),
z0_res = svld1sh_gather_offset_s32 (p0, z0, 64))
/*
** ld1sh_gather_x0_s32_index:
** lsl (x[0-9]+), x0, #?1
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_x0_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, x0),
z0_res = svld1sh_gather_index_s32 (p0, z0, x0))
/*
** ld1sh_gather_m1_s32_index:
** mov (x[0-9]+), #?-2
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_m1_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, -1),
z0_res = svld1sh_gather_index_s32 (p0, z0, -1))
/*
** ld1sh_gather_0_s32_index:
** ld1sh z0\.s, p0/z, \[z0\.s\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_0_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, 0),
z0_res = svld1sh_gather_index_s32 (p0, z0, 0))
/*
** ld1sh_gather_5_s32_index:
** ld1sh z0\.s, p0/z, \[z0\.s, #10\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_5_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, 5),
z0_res = svld1sh_gather_index_s32 (p0, z0, 5))
/*
** ld1sh_gather_31_s32_index:
** ld1sh z0\.s, p0/z, \[z0\.s, #62\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_31_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, 31),
z0_res = svld1sh_gather_index_s32 (p0, z0, 31))
/*
** ld1sh_gather_32_s32_index:
** mov (x[0-9]+), #?64
** ld1sh z0\.s, p0/z, \[\1, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_ZS (ld1sh_gather_32_s32_index, svint32_t, svuint32_t,
z0_res = svld1sh_gather_u32base_index_s32 (p0, z0, 32),
z0_res = svld1sh_gather_index_s32 (p0, z0, 32))
/*
** ld1sh_gather_x0_s32_s32offset:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, sxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_x0_s32_s32offset, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32offset_s32 (p0, x0, z0),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z0))
/*
** ld1sh_gather_tied1_s32_s32offset:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, sxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_tied1_s32_s32offset, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32offset_s32 (p0, x0, z0),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z0))
/*
** ld1sh_gather_untied_s32_s32offset:
** ld1sh z0\.s, p0/z, \[x0, z1\.s, sxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_untied_s32_s32offset, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32offset_s32 (p0, x0, z1),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z1))
/*
** ld1sh_gather_x0_s32_u32offset:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_x0_s32_u32offset, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32offset_s32 (p0, x0, z0),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z0))
/*
** ld1sh_gather_tied1_s32_u32offset:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_tied1_s32_u32offset, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32offset_s32 (p0, x0, z0),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z0))
/*
** ld1sh_gather_untied_s32_u32offset:
** ld1sh z0\.s, p0/z, \[x0, z1\.s, uxtw\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_untied_s32_u32offset, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32offset_s32 (p0, x0, z1),
z0_res = svld1sh_gather_offset_s32 (p0, x0, z1))
/*
** ld1sh_gather_x0_s32_s32index:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, sxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_x0_s32_s32index, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32index_s32 (p0, x0, z0),
z0_res = svld1sh_gather_index_s32 (p0, x0, z0))
/*
** ld1sh_gather_tied1_s32_s32index:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, sxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_tied1_s32_s32index, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32index_s32 (p0, x0, z0),
z0_res = svld1sh_gather_index_s32 (p0, x0, z0))
/*
** ld1sh_gather_untied_s32_s32index:
** ld1sh z0\.s, p0/z, \[x0, z1\.s, sxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_untied_s32_s32index, svint32_t, int16_t, svint32_t,
z0_res = svld1sh_gather_s32index_s32 (p0, x0, z1),
z0_res = svld1sh_gather_index_s32 (p0, x0, z1))
/*
** ld1sh_gather_x0_s32_u32index:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, uxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_x0_s32_u32index, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32index_s32 (p0, x0, z0),
z0_res = svld1sh_gather_index_s32 (p0, x0, z0))
/*
** ld1sh_gather_tied1_s32_u32index:
** ld1sh z0\.s, p0/z, \[x0, z0\.s, uxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_tied1_s32_u32index, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32index_s32 (p0, x0, z0),
z0_res = svld1sh_gather_index_s32 (p0, x0, z0))
/*
** ld1sh_gather_untied_s32_u32index:
** ld1sh z0\.s, p0/z, \[x0, z1\.s, uxtw 1\]
** ret
*/
TEST_LOAD_GATHER_SZ (ld1sh_gather_untied_s32_u32index, svint32_t, int16_t, svuint32_t,
z0_res = svld1sh_gather_u32index_s32 (p0, x0, z1),
z0_res = svld1sh_gather_index_s32 (p0, x0, z1))