1 /* { dg-do compile } */
2 /* { dg-require-effective-target arm_thumb2_ok } */
3 /* { dg-options "-march=armv7-a -mfloat-abi=hard -mfpu=neon -O2" } */
4 /* { dg-skip-if "need SIMD instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
5 /* { dg-skip-if "need SIMD instructions" { *-*-* } { "-mfpu=vfp*" } { "" } } */
10 typedef unsigned int size_t;
11 typedef unsigned int wchar_t;
12 void *memset (void *s
, int c
, size_t n
);
18 unsigned int is_long_double
:1;
19 unsigned int is_short
:1;
20 unsigned int is_long
:1;
24 unsigned int showsign
:1;
27 unsigned int is_char
:1;
31 unsigned short int user
;
35 void bar (int *alt
, int *space
, int *left
, int *showsign
,
45 void __printf_fp (char *s
, struct printf_info
*pinfo
);
53 int is_long_double
= 0;
58 int use_outdigits
= 0;
59 unsigned int pad
= L
' ';
62 bar (&alt
, &space
, &left
, &showsign
, &group
, &is_long_double
,
63 &is_short
, &is_long
, &width
, &prec
, &use_outdigits
, &pad
, &spec
);
65 a
[1] = a
[0] + a
[2] + a
[3] + a
[4] + a
[5] + a
[6];
66 a
[2] = a
[1] + a
[3] + a
[5] + a
[5] + a
[6] + a
[7];
67 a
[3] = a
[2] + a
[5] + a
[7] + a
[6] + a
[7] + a
[8];
68 a
[4] = a
[3] + a
[7] + a
[11] + a
[7] + a
[8] + a
[9];
69 a
[5] = a
[5] + a
[11] + a
[13] + a
[8] + a
[9] + a
[10];
70 a
[6] = a
[7] + a
[13] + a
[17] + a
[9] + a
[10] + a
[11];
71 a
[7] = a
[11] + a
[17] + a
[19] + a
[10] + a
[11] + a
[12];
72 a
[8] = a
[17] + a
[19] + a
[23] + a
[29] + a
[31] + a
[37];
75 struct printf_info info
;
76 memset (&info
, 0, sizeof (struct printf_info
));
80 info
.is_long_double
= is_long_double
;
81 info
.is_short
= is_short
;
82 info
.is_long
= is_long
;
86 info
.showsign
= showsign
;
90 info
.i18n
= use_outdigits
;
91 info
.wide
= sizeof (wchar_t) != 1;
93 __printf_fp (s
, &info
);