1 /* { dg-require-effective-target vect_int } */
16 void foo (unsigned int *__restrict__ pInput
, unsigned int *__restrict__ pOutput
)
20 for (i
= 0; i
< N
/ 2; i
++)
25 *pOutput
++ = M00
* a
+ M01
* b
;
26 *pOutput
++ = M10
* a
+ M11
* b
;
30 int main (int argc
, const char* argv
[])
32 unsigned int input
[N
], output
[N
], i
;
33 unsigned int check_results
[N
] = {1322, 13, 4166, 471, 7010, 929, 9854, 1387, 12698, 1845, 15542, 2303, 18386, 2761, 21230, 3219};
37 for (i
= 0; i
< N
; i
++)
47 for (i
= 0; i
< N
; i
++)
48 if (output
[i
] != check_results
[i
])
54 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_perm } } } */
55 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_perm } } } */
56 /* { dg-final { cleanup-tree-dump "vect" } } */