[llvm-branch-commits] [clang] 0826268 - [PowerPC] Fix x86 vector intrinsics wrapper compilation under C++
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jun 4 20:40:20 PDT 2021
Author: Qiu Chaofan
Date: 2021-06-04T20:39:11-07:00
New Revision: 0826268d59c6e1bb3530dffd9dc5f6038774486d
URL: https://github.com/llvm/llvm-project/commit/0826268d59c6e1bb3530dffd9dc5f6038774486d
DIFF: https://github.com/llvm/llvm-project/commit/0826268d59c6e1bb3530dffd9dc5f6038774486d.diff
LOG: [PowerPC] Fix x86 vector intrinsics wrapper compilation under C++
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D103386
(cherry picked from commit c0b3071833a80121a5a7ca9ea54fd59a59806acc)
Added:
Modified:
clang/lib/Headers/ppc_wrappers/xmmintrin.h
clang/test/CodeGen/ppc-xmmintrin.c
Removed:
################################################################################
diff --git a/clang/lib/Headers/ppc_wrappers/xmmintrin.h b/clang/lib/Headers/ppc_wrappers/xmmintrin.h
index 0f429fa04081..0e45b96769f8 100644
--- a/clang/lib/Headers/ppc_wrappers/xmmintrin.h
+++ b/clang/lib/Headers/ppc_wrappers/xmmintrin.h
@@ -28,7 +28,7 @@
Most SSE scalar float intrinsic operations can be performed more
efficiently as C language float scalar operations or optimized to
use vector SIMD operations. We recommend this for new applications. */
-#error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
+#error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
#endif
#ifndef _XMMINTRIN_H_INCLUDED
@@ -62,14 +62,13 @@
/* The Intel API is flexible enough that we must allow aliasing with other
vector types, and their scalar components. */
-typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+typedef vector float __m128 __attribute__((__may_alias__));
/* Unaligned version of the same type. */
-typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__,
- __aligned__ (1)));
+typedef vector float __m128_u __attribute__((__may_alias__, __aligned__(1)));
/* Internal data types for implementing the intrinsics. */
-typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+typedef vector float __v4sf;
/* Create an undefined vector. */
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff --git a/clang/test/CodeGen/ppc-xmmintrin.c b/clang/test/CodeGen/ppc-xmmintrin.c
index e9466b32257f..32a5e5a7cdaf 100644
--- a/clang/test/CodeGen/ppc-xmmintrin.c
+++ b/clang/test/CodeGen/ppc-xmmintrin.c
@@ -3,8 +3,12 @@
// RUN: %clang -S -emit-llvm -target powerpc64-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \
// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-BE
+// RUN: %clang -x c++ -fsyntax-only -target powerpc64-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \
+// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns
// RUN: %clang -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \
// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-LE
+// RUN: %clang -x c++ -fsyntax-only -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \
+// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns
#include <xmmintrin.h>
@@ -1426,7 +1430,7 @@ test_mul() {
void __attribute__((noinline))
test_prefetch() {
- _mm_prefetch(ms, i);
+ _mm_prefetch(ms, _MM_HINT_NTA);
}
// CHECK-LABEL: @test_prefetch
More information about the llvm-branch-commits
mailing list