From: Simon Pilgrim Date: Tue, 5 Sep 2017 10:06:41 +0000 (+0000) Subject: [X86][AVX512] _mm512_stream_load_si512 should take a void const* argument (PR33977) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98367161436d661c328c88d5eb82ce4b40e264fa;p=clang [X86][AVX512] _mm512_stream_load_si512 should take a void const* argument (PR33977) Based off the Intel Intrinsics guide, we should expect a void const* argument. Prevents 'passing 'const void *' to parameter of type 'void *' discards qualifiers' warnings. Differential Revision: https://reviews.llvm.org/D37449 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@312523 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/avx512fintrin.h b/lib/Headers/avx512fintrin.h index 4ce6945311..2b4497a1ce 100644 --- a/lib/Headers/avx512fintrin.h +++ b/lib/Headers/avx512fintrin.h @@ -9040,7 +9040,7 @@ _mm512_stream_si512 (__m512i * __P, __m512i __A) } static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_stream_load_si512 (void *__P) +_mm512_stream_load_si512 (void const *__P) { typedef __v8di __v8di_aligned __attribute__((aligned(64))); return (__m512i) __builtin_nontemporal_load((const __v8di_aligned *)__P); diff --git a/test/CodeGen/avx512f-builtins.c b/test/CodeGen/avx512f-builtins.c index c3356461a3..317539ab2e 100644 --- a/test/CodeGen/avx512f-builtins.c +++ b/test/CodeGen/avx512f-builtins.c @@ -6258,6 +6258,12 @@ __m512i test_mm512_stream_load_si512(void *__P) { return _mm512_stream_load_si512(__P); } +__m512i test_mm512_stream_load_si512_const(void const *__P) { + // CHECK-LABEL: @test_mm512_stream_load_si512_const + // CHECK: load <8 x i64>, <8 x i64>* %{{.*}}, align 64, !nontemporal + return _mm512_stream_load_si512(__P); +} + void test_mm512_stream_pd(double *__P, __m512d __A) { // CHECK-LABEL: @test_mm512_stream_pd // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 64, !nontemporal