4 typedef int V
__attribute__((vector_size (4)));
5 unsigned int a
[N
* 2] __attribute__((aligned
));
6 unsigned int b
[N
* 2] __attribute__((aligned
));
9 __attribute__((noinline
, noclone
)) unsigned int
10 foo (unsigned int *a
, unsigned int *b
)
14 for (i
= 0; i
< N
; i
++)
16 unsigned int x
= a
[i
], y
= b
[i
];
34 __attribute__((noinline
, noclone
)) unsigned int
35 bar (unsigned int *a
, unsigned int *b
)
39 for (i
= 0; i
< N
; i
++)
41 unsigned int x
= a
[i
], y
= b
[i
];
61 baz (unsigned int *a
, unsigned int *b
,
62 unsigned int (*fn
) (unsigned int *, unsigned int *))
65 for (i
= -64; i
< 0; i
++)
75 for (; i
< N
+ 64; i
++)
80 if (fn (a
, b
) != -512U - (N
- 32) * 16U + 32 * 127U)
82 for (i
= -64; i
< 0; i
++)
83 if (a
[i
] != 19 || b
[i
] != 17)
86 if (a
[i
] != (i
- 512U < 32U ? i
- 512U + 127 : i
- 512U - 16)
87 || b
[i
] != (i
- 512U < 32U ? i
* 2U : i
+ 1U))
89 for (; i
< N
+ 64; i
++)
90 if (a
[i
] != 27 || b
[i
] != 19)
99 baz (a
+ 512, b
+ 512, foo
);
100 baz (a
+ 512, b
+ 512, bar
);
101 baz (a
+ 512 + 1, b
+ 512 + 1, foo
);
102 baz (a
+ 512 + 1, b
+ 512 + 1, bar
);
103 baz (a
+ 512 + 31, b
+ 512 + 31, foo
);
104 baz (a
+ 512 + 31, b
+ 512 + 31, bar
);
105 baz (a
+ 512 + 1, b
+ 512, foo
);
106 baz (a
+ 512 + 1, b
+ 512, bar
);
107 baz (a
+ 512 + 31, b
+ 512, foo
);
108 baz (a
+ 512 + 31, b
+ 512, bar
);
109 baz (a
+ 512, b
+ 512 + 1, foo
);
110 baz (a
+ 512, b
+ 512 + 1, bar
);
111 baz (a
+ 512, b
+ 512 + 31, foo
);
112 baz (a
+ 512, b
+ 512 + 31, bar
);