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