2 /* { dg-options "-O2 -fomit-frame-pointer --save-temps -fno-inline" } */
4 extern void abort (void);
6 typedef float float16x4_t
__attribute__ ((vector_size ((16))));
14 return (float16x4_t
) { 0, 0, a
, b
};
18 main (int argc
, char **argv
)
22 float16x4_t vec
= make_vector ();
23 if (vec
[0] != 0 || vec
[1] != 0 || vec
[2] != a
|| vec
[3] != b
)
28 /* { dg-final { scan-assembler-times "ins\\t" 2 } } */
29 /* What we want to check, is that make_vector does not stp the whole vector
30 to the stack. Unfortunately here we scan the body of main() too, which may
31 be a bit fragile - the test is currently passing only because of the option
32 -fomit-frame-pointer which avoids use of stp in the prologue to main(). */
33 /* { dg-final { scan-assembler-not "stp\\t" } } */