+2018-06-11 Julia Koval <julia.koval@intel.com>
+
+ * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128)
+ _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove.
+ * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
+
2018-06-11 Olivier Hainque <hainque@adacore.com>
* dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83
#pragma GCC pop_options
#endif /* __DISABLE_VAES__ */
-#if !defined(__VAES__) || !defined(__AVX512VL__)
-#pragma GCC push_options
-#pragma GCC target("vaes,avx512vl")
-#define __DISABLE_VAESVL__
-#endif /* __VAES__ */
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_aesdec_epi128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_vaesdec_v16qi ((__v16qi) __A, (__v16qi) __B);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_aesdeclast_epi128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_vaesdeclast_v16qi ((__v16qi) __A,
- (__v16qi) __B);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_aesenc_epi128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_vaesenc_v16qi ((__v16qi) __A, (__v16qi) __B);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_aesenclast_epi128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_vaesenclast_v16qi ((__v16qi) __A,
- (__v16qi) __B);
-}
-
-#ifdef __DISABLE_VAESVL__
-#undef __DISABLE_VAESVL__
-#pragma GCC pop_options
-#endif /* __DISABLE_VAES__ */
#endif /* __VAESINTRIN_H_INCLUDED */
#pragma GCC pop_options
#endif /* __DISABLE_VPCLMULQDQF__ */
-#if !defined(__VPCLMULQDQ__) || !defined(__AVX512VL__)
-#pragma GCC push_options
-#pragma GCC target("vpclmulqdq,avx512vl")
-#define __DISABLE_VPCLMULQDQVL__
-#endif /* __VPCLMULQDQVL__ */
-
-#ifdef __OPTIMIZE__
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_clmulepi64_epi128 (__m128i __A, __m128i __B, const int __C)
-{
- return (__m128i) __builtin_ia32_vpclmulqdq_v2di ((__v2di)__A,
- (__v2di) __B, __C);
-}
-#else
-#define _mm_clmulepi64_epi128(A, B, C) \
- ((__m128i) __builtin_ia32_vpclmulqdq_v2di ((__v2di)(__m128i)(A), \
- (__v2di)(__m128i)(B), (int)(C)))
-#endif
-
-#ifdef __DISABLE_VPCLMULQDQVL__
-#undef __DISABLE_VPCLMULQDQVL__
-#pragma GCC pop_options
-#endif /* __DISABLE_VPCLMULQDQVL__ */
-
#if !defined(__VPCLMULQDQ__) || !defined(__AVX512VL__)
#pragma GCC push_options
#pragma GCC target("vpclmulqdq,avx512vl")
+2018-06-11 Julia Koval <julia.koval@intel.com>
+
+ * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test.
+ * gcc.target/i386/vpclmulqdq.c: Ditto.
+
2018-06-11 Olivier Hainque <hainque@adacore.com>
* gnat.dg/lang-dw2.adb: New test.
/* { dg-final { scan-assembler-times "vaesenc\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\{\n\]*%ymm\[0-9\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vaesenclast\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\{\n\]*%ymm\[0-9\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vaesdec\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vaesdeclast\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vaesenc\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vaesenclast\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-
#include <immintrin.h>
volatile __m512i x,y;
volatile __m256i x256, y256;
-volatile __m128i x128, y128;
void extern
avx512f_test (void)
x256 = _mm256_aesdeclast_epi128 (x256, y256);
x256 = _mm256_aesenc_epi128 (x256, y256);
x256 = _mm256_aesenclast_epi128 (x256, y256);
-
- x128 = _mm_aesdec_epi128 (x128, y128);
- x128 = _mm_aesdeclast_epi128 (x128, y128);
- x128 = _mm_aesenc_epi128 (x128, y128);
- x128 = _mm_aesenclast_epi128 (x128, y128);
}
/* { dg-options "-mvpclmulqdq -mavx512vl -mavx512f -O2" } */
/* { dg-final { scan-assembler-times "vpclmulqdq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vpclmulqdq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vpclmulqdq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <x86intrin.h>
volatile __m512i x1, x2;
volatile __m256i x3, x4;
-volatile __m128i x5, x6;
void extern
avx512vl_test (void)
{
x1 = _mm512_clmulepi64_epi128(x1, x2, 3);
x3 = _mm256_clmulepi64_epi128(x3, x4, 3);
- x5 = _mm_clmulepi64_epi128(x5, x6, 3);
}