1 /* { dg-require-effective-target vect_int } */
10 unsigned int result
[N
];
12 /* unsigned short->unsigned int widening-mult. */
13 __attribute__ ((noinline
, noclone
)) void
16 result
[0] = (unsigned int) (X
[0] * Y
[0]);
17 result
[1] = (unsigned int) (X
[1] * Y
[1]);
18 result
[2] = (unsigned int) (X
[2] * Y
[2]);
19 result
[3] = (unsigned int) (X
[3] * Y
[3]);
20 result
[4] = (unsigned int) (X
[4] * Y
[4]);
21 result
[5] = (unsigned int) (X
[5] * Y
[5]);
22 result
[6] = (unsigned int) (X
[6] * Y
[6]);
23 result
[7] = (unsigned int) (X
[7] * Y
[7]);
32 for (i
= 0; i
< N
; i
++)
40 for (i
= 0; i
< N
; i
++)
42 __asm__
volatile ("");
51 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp2" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
52 /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 8 "slp2" { target vect_widen_mult_hi_to_si_pattern } } } */
53 /* { dg-final { scan-tree-dump-times "pattern recognized" 8 "slp2" { target vect_widen_mult_hi_to_si_pattern } } } */