2 /* { dg-require-effective-target aes } */
3 /* { dg-options "-O2 -maes" } */
10 extern void abort (void);
15 static __m128i src1
[NUM
];
16 static __m128i edst
[NUM
];
18 static __m128i resdst
[NUM
];
20 /* Initialize input/output vectors. (Currently, there is only one set
21 of input/output vectors). */
24 init_data (__m128i
*s1
, __m128i
*d
)
27 for (i
= 0; i
< NUM
; i
++)
29 s1
[i
] = _mm_setr_epi32 (0x16157e2b, 0xa6d2ae28,
30 0x8815f7ab, 0x3c4fcf09);
31 d
[i
] = _mm_setr_epi32 (0x24b5e434, 0x3424b5e5,
32 0xeb848a01, 0x01eb848b);
41 init_data (src1
, edst
);
43 for (i
= 0; i
< NUM
; i
+= 16)
45 resdst
[i
] = _mm_aeskeygenassist_si128 (src1
[i
], IMM8
);
46 resdst
[i
+ 1] = _mm_aeskeygenassist_si128 (src1
[i
+ 1], IMM8
);
47 resdst
[i
+ 2] = _mm_aeskeygenassist_si128 (src1
[i
+ 2], IMM8
);
48 resdst
[i
+ 3] = _mm_aeskeygenassist_si128 (src1
[i
+ 3], IMM8
);
49 resdst
[i
+ 4] = _mm_aeskeygenassist_si128 (src1
[i
+ 4], IMM8
);
50 resdst
[i
+ 5] = _mm_aeskeygenassist_si128 (src1
[i
+ 5], IMM8
);
51 resdst
[i
+ 6] = _mm_aeskeygenassist_si128 (src1
[i
+ 6], IMM8
);
52 resdst
[i
+ 7] = _mm_aeskeygenassist_si128 (src1
[i
+ 7], IMM8
);
53 resdst
[i
+ 8] = _mm_aeskeygenassist_si128 (src1
[i
+ 8], IMM8
);
54 resdst
[i
+ 9] = _mm_aeskeygenassist_si128 (src1
[i
+ 9], IMM8
);
55 resdst
[i
+ 10] = _mm_aeskeygenassist_si128 (src1
[i
+ 10], IMM8
);
56 resdst
[i
+ 11] = _mm_aeskeygenassist_si128 (src1
[i
+ 11], IMM8
);
57 resdst
[i
+ 12] = _mm_aeskeygenassist_si128 (src1
[i
+ 12], IMM8
);
58 resdst
[i
+ 13] = _mm_aeskeygenassist_si128 (src1
[i
+ 13], IMM8
);
59 resdst
[i
+ 14] = _mm_aeskeygenassist_si128 (src1
[i
+ 14], IMM8
);
60 resdst
[i
+ 15] = _mm_aeskeygenassist_si128 (src1
[i
+ 15], IMM8
);
63 for (i
= 0; i
< NUM
; i
++)
64 if (memcmp(edst
+ i
, resdst
+ i
, sizeof (__m128i
)))