aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create4_1.c
blob: b5ffd4e6aaf612c56f3ad829fd74132a8f86dabd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */

#include "test_sve_acle.h"

/*
** create4_s8:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_s8, svint8x4_t, svint8_t,
	     z0 = svcreate4_s8 (z6, z4, z7, z5),
	     z0 = svcreate4 (z6, z4, z7, z5))

/*
** create4_u8:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_u8, svuint8x4_t, svuint8_t,
	     z0 = svcreate4_u8 (z4, z6, z5, z7),
	     z0 = svcreate4 (z4, z6, z5, z7))

/*
** create4_s16:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_s16, svint16x4_t, svint16_t,
	     z0 = svcreate4_s16 (z6, z4, z5, z7),
	     z0 = svcreate4 (z6, z4, z5, z7))

/*
** create4_u16:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_u16, svuint16x4_t, svuint16_t,
	     z0 = svcreate4_u16 (z6, z5, z4, z7),
	     z0 = svcreate4 (z6, z5, z4, z7))

/*
** create4_bf16:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_bf16, svbfloat16x4_t, svbfloat16_t,
	     z0 = svcreate4_bf16 (z4, z5, z6, z7),
	     z0 = svcreate4 (z4, z5, z6, z7))

/*
** create4_f16:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_f16, svfloat16x4_t, svfloat16_t,
	     z0 = svcreate4_f16 (z4, z5, z6, z7),
	     z0 = svcreate4 (z4, z5, z6, z7))

/*
** create4_s32:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_s32, svint32x4_t, svint32_t,
	     z0 = svcreate4_s32 (z6, z7, z4, z5),
	     z0 = svcreate4 (z6, z7, z4, z5))

/*
** create4_u32:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_u32, svuint32x4_t, svuint32_t,
	     z0 = svcreate4_u32 (z7, z5, z6, z7),
	     z0 = svcreate4 (z7, z5, z6, z7))

/*
** create4_f32:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_f32, svfloat32x4_t, svfloat32_t,
	     z0 = svcreate4_f32 (z7, z4, z6, z4),
	     z0 = svcreate4 (z7, z4, z6, z4))

/*
** create4_s64:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_s64, svint64x4_t, svint64_t,
	     z0 = svcreate4_s64 (z5, z7, z6, z6),
	     z0 = svcreate4 (z5, z7, z6, z6))

/*
** create4_u64:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_u64, svuint64x4_t, svuint64_t,
	     z0 = svcreate4_u64 (z7, z6, z4, z5),
	     z0 = svcreate4 (z7, z6, z4, z5))

/*
** create4_f64:
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	mov	[^\n]+
**	ret
*/
TEST_CREATE (create4_f64, svfloat64x4_t, svfloat64_t,
	     z0 = svcreate4_f64 (z5, z4, z7, z6),
	     z0 = svcreate4 (z5, z4, z7, z6))