1/* { dg-do compile } */
2/* { dg-require-effective-target ssse3 } */
3/* { dg-options "-O2 -ftree-vectorize -mssse3 -mtune=corei7" } */
4#define byte unsigned char
5
6void
7matrix_mul (byte *in, byte *out, int size)
8{
9  int i;
10  for (i = 0; i < size; i++)
11    {
12      byte in0 = in[0];
13      byte in1 = in[1];
14      byte in2 = in[2];
15      byte out0, out1, out2, out3;
16      out0 = in0 + in1;
17      out1 = in0 + in2;
18      out2 = in1 + in2;
19      out3 = in0 + in1 + in2;
20      out[0] = out0;
21      out[1] = out1;
22      out[2] = out2;
23      out[3] = out3;
24      in += 3;
25      out += 4;
26    }
27}
28
29/* { dg-final { scan-assembler "pshufb" } } */
30