Skip to content

Commit c22586a

Browse files
authored
[PowerPC] Update altivec.h to use __inline__ for c89 compatibility (#134430)
1 parent d8fd665 commit c22586a

File tree

2 files changed

+83
-79
lines changed

2 files changed

+83
-79
lines changed

clang/lib/Headers/altivec.h

Lines changed: 82 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -17525,70 +17525,73 @@ vec_bperm(vector unsigned long long __a, vector unsigned char __b) {
1752517525

1752617526
/* vec_reve */
1752717527

17528-
static inline __ATTRS_o_ai vector bool char vec_reve(vector bool char __a) {
17528+
static __inline__ __ATTRS_o_ai vector bool char vec_reve(vector bool char __a) {
1752917529
return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
1753017530
5, 4, 3, 2, 1, 0);
1753117531
}
1753217532

17533-
static inline __ATTRS_o_ai vector signed char vec_reve(vector signed char __a) {
17533+
static __inline__ __ATTRS_o_ai vector signed char
17534+
vec_reve(vector signed char __a) {
1753417535
return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
1753517536
5, 4, 3, 2, 1, 0);
1753617537
}
1753717538

17538-
static inline __ATTRS_o_ai vector unsigned char
17539+
static __inline__ __ATTRS_o_ai vector unsigned char
1753917540
vec_reve(vector unsigned char __a) {
1754017541
return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
1754117542
5, 4, 3, 2, 1, 0);
1754217543
}
1754317544

17544-
static inline __ATTRS_o_ai vector bool int vec_reve(vector bool int __a) {
17545+
static __inline__ __ATTRS_o_ai vector bool int vec_reve(vector bool int __a) {
1754517546
return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
1754617547
}
1754717548

17548-
static inline __ATTRS_o_ai vector signed int vec_reve(vector signed int __a) {
17549+
static __inline__ __ATTRS_o_ai vector signed int
17550+
vec_reve(vector signed int __a) {
1754917551
return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
1755017552
}
1755117553

17552-
static inline __ATTRS_o_ai vector unsigned int
17554+
static __inline__ __ATTRS_o_ai vector unsigned int
1755317555
vec_reve(vector unsigned int __a) {
1755417556
return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
1755517557
}
1755617558

17557-
static inline __ATTRS_o_ai vector bool short vec_reve(vector bool short __a) {
17559+
static __inline__ __ATTRS_o_ai vector bool short
17560+
vec_reve(vector bool short __a) {
1755817561
return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
1755917562
}
1756017563

17561-
static inline __ATTRS_o_ai vector signed short
17564+
static __inline__ __ATTRS_o_ai vector signed short
1756217565
vec_reve(vector signed short __a) {
1756317566
return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
1756417567
}
1756517568

17566-
static inline __ATTRS_o_ai vector unsigned short
17569+
static __inline__ __ATTRS_o_ai vector unsigned short
1756717570
vec_reve(vector unsigned short __a) {
1756817571
return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
1756917572
}
1757017573

17571-
static inline __ATTRS_o_ai vector float vec_reve(vector float __a) {
17574+
static __inline__ __ATTRS_o_ai vector float vec_reve(vector float __a) {
1757217575
return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
1757317576
}
1757417577

1757517578
#ifdef __VSX__
17576-
static inline __ATTRS_o_ai vector bool long long
17579+
static __inline__ __ATTRS_o_ai vector bool long long
1757717580
vec_reve(vector bool long long __a) {
1757817581
return __builtin_shufflevector(__a, __a, 1, 0);
1757917582
}
1758017583

17581-
static inline __ATTRS_o_ai vector signed long long
17584+
static __inline__ __ATTRS_o_ai vector signed long long
1758217585
vec_reve(vector signed long long __a) {
1758317586
return __builtin_shufflevector(__a, __a, 1, 0);
1758417587
}
1758517588

17586-
static inline __ATTRS_o_ai vector unsigned long long
17589+
static __inline__ __ATTRS_o_ai vector unsigned long long
1758717590
vec_reve(vector unsigned long long __a) {
1758817591
return __builtin_shufflevector(__a, __a, 1, 0);
1758917592
}
1759017593

17591-
static inline __ATTRS_o_ai vector double vec_reve(vector double __a) {
17594+
static __inline__ __ATTRS_o_ai vector double vec_reve(vector double __a) {
1759217595
return __builtin_shufflevector(__a, __a, 1, 0);
1759317596
}
1759417597
#endif
@@ -17721,42 +17724,42 @@ typedef vector signed int unaligned_vec_sint __attribute__((aligned(1)));
1772117724
typedef vector unsigned int unaligned_vec_uint __attribute__((aligned(1)));
1772217725
typedef vector float unaligned_vec_float __attribute__((aligned(1)));
1772317726

17724-
static inline __ATTRS_o_ai vector signed char vec_xl(ptrdiff_t __offset,
17725-
const signed char *__ptr) {
17727+
static __inline__ __ATTRS_o_ai vector signed char
17728+
vec_xl(ptrdiff_t __offset, const signed char *__ptr) {
1772617729
return *(unaligned_vec_schar *)(__ptr + __offset);
1772717730
}
1772817731

17729-
static inline __ATTRS_o_ai vector unsigned char
17732+
static __inline__ __ATTRS_o_ai vector unsigned char
1773017733
vec_xl(ptrdiff_t __offset, const unsigned char *__ptr) {
1773117734
return *(unaligned_vec_uchar*)(__ptr + __offset);
1773217735
}
1773317736

17734-
static inline __ATTRS_o_ai vector signed short
17737+
static __inline__ __ATTRS_o_ai vector signed short
1773517738
vec_xl(ptrdiff_t __offset, const signed short *__ptr) {
1773617739
signed char *__addr = (signed char *)__ptr + __offset;
1773717740
return *(unaligned_vec_sshort *)__addr;
1773817741
}
1773917742

17740-
static inline __ATTRS_o_ai vector unsigned short
17743+
static __inline__ __ATTRS_o_ai vector unsigned short
1774117744
vec_xl(ptrdiff_t __offset, const unsigned short *__ptr) {
1774217745
signed char *__addr = (signed char *)__ptr + __offset;
1774317746
return *(unaligned_vec_ushort *)__addr;
1774417747
}
1774517748

17746-
static inline __ATTRS_o_ai vector signed int vec_xl(ptrdiff_t __offset,
17747-
const signed int *__ptr) {
17749+
static __inline__ __ATTRS_o_ai vector signed int
17750+
vec_xl(ptrdiff_t __offset, const signed int *__ptr) {
1774817751
signed char *__addr = (signed char *)__ptr + __offset;
1774917752
return *(unaligned_vec_sint *)__addr;
1775017753
}
1775117754

17752-
static inline __ATTRS_o_ai vector unsigned int
17755+
static __inline__ __ATTRS_o_ai vector unsigned int
1775317756
vec_xl(ptrdiff_t __offset, const unsigned int *__ptr) {
1775417757
signed char *__addr = (signed char *)__ptr + __offset;
1775517758
return *(unaligned_vec_uint *)__addr;
1775617759
}
1775717760

17758-
static inline __ATTRS_o_ai vector float vec_xl(ptrdiff_t __offset,
17759-
const float *__ptr) {
17761+
static __inline__ __ATTRS_o_ai vector float vec_xl(ptrdiff_t __offset,
17762+
const float *__ptr) {
1776017763
signed char *__addr = (signed char *)__ptr + __offset;
1776117764
return *(unaligned_vec_float *)__addr;
1776217765
}
@@ -17766,20 +17769,20 @@ typedef vector signed long long unaligned_vec_sll __attribute__((aligned(1)));
1776617769
typedef vector unsigned long long unaligned_vec_ull __attribute__((aligned(1)));
1776717770
typedef vector double unaligned_vec_double __attribute__((aligned(1)));
1776817771

17769-
static inline __ATTRS_o_ai vector signed long long
17772+
static __inline__ __ATTRS_o_ai vector signed long long
1777017773
vec_xl(ptrdiff_t __offset, const signed long long *__ptr) {
1777117774
signed char *__addr = (signed char *)__ptr + __offset;
1777217775
return *(unaligned_vec_sll *)__addr;
1777317776
}
1777417777

17775-
static inline __ATTRS_o_ai vector unsigned long long
17778+
static __inline__ __ATTRS_o_ai vector unsigned long long
1777617779
vec_xl(ptrdiff_t __offset, const unsigned long long *__ptr) {
1777717780
signed char *__addr = (signed char *)__ptr + __offset;
1777817781
return *(unaligned_vec_ull *)__addr;
1777917782
}
1778017783

17781-
static inline __ATTRS_o_ai vector double vec_xl(ptrdiff_t __offset,
17782-
const double *__ptr) {
17784+
static __inline__ __ATTRS_o_ai vector double vec_xl(ptrdiff_t __offset,
17785+
const double *__ptr) {
1778317786
signed char *__addr = (signed char *)__ptr + __offset;
1778417787
return *(unaligned_vec_double *)__addr;
1778517788
}
@@ -17790,13 +17793,13 @@ static inline __ATTRS_o_ai vector double vec_xl(ptrdiff_t __offset,
1779017793
typedef vector signed __int128 unaligned_vec_si128 __attribute__((aligned(1)));
1779117794
typedef vector unsigned __int128 unaligned_vec_ui128
1779217795
__attribute__((aligned(1)));
17793-
static inline __ATTRS_o_ai vector signed __int128
17796+
static __inline__ __ATTRS_o_ai vector signed __int128
1779417797
vec_xl(ptrdiff_t __offset, const signed __int128 *__ptr) {
1779517798
signed char *__addr = (signed char *)__ptr + __offset;
1779617799
return *(unaligned_vec_si128 *)__addr;
1779717800
}
1779817801

17799-
static inline __ATTRS_o_ai vector unsigned __int128
17802+
static __inline__ __ATTRS_o_ai vector unsigned __int128
1780017803
vec_xl(ptrdiff_t __offset, const unsigned __int128 *__ptr) {
1780117804
signed char *__addr = (signed char *)__ptr + __offset;
1780217805
return *(unaligned_vec_ui128 *)__addr;
@@ -17991,81 +17994,81 @@ vec_load_splats(unsigned long long __offset, const float *__ptr) {
1799117994

1799217995
#define vec_xstd2 vec_xst
1799317996
#define vec_xstw4 vec_xst
17994-
static inline __ATTRS_o_ai void
17997+
static __inline__ __ATTRS_o_ai void
1799517998
vec_xst(vector signed char __vec, ptrdiff_t __offset, signed char *__ptr) {
1799617999
*(unaligned_vec_schar *)(__ptr + __offset) = __vec;
1799718000
}
1799818001

17999-
static inline __ATTRS_o_ai void
18002+
static __inline__ __ATTRS_o_ai void
1800018003
vec_xst(vector unsigned char __vec, ptrdiff_t __offset, unsigned char *__ptr) {
1800118004
*(unaligned_vec_uchar *)(__ptr + __offset) = __vec;
1800218005
}
1800318006

18004-
static inline __ATTRS_o_ai void
18007+
static __inline__ __ATTRS_o_ai void
1800518008
vec_xst(vector signed short __vec, ptrdiff_t __offset, signed short *__ptr) {
1800618009
signed char *__addr = (signed char *)__ptr + __offset;
1800718010
*(unaligned_vec_sshort *)__addr = __vec;
1800818011
}
1800918012

18010-
static inline __ATTRS_o_ai void vec_xst(vector unsigned short __vec,
18011-
ptrdiff_t __offset,
18012-
unsigned short *__ptr) {
18013+
static __inline__ __ATTRS_o_ai void vec_xst(vector unsigned short __vec,
18014+
ptrdiff_t __offset,
18015+
unsigned short *__ptr) {
1801318016
signed char *__addr = (signed char *)__ptr + __offset;
1801418017
*(unaligned_vec_ushort *)__addr = __vec;
1801518018
}
1801618019

18017-
static inline __ATTRS_o_ai void vec_xst(vector signed int __vec,
18018-
ptrdiff_t __offset, signed int *__ptr) {
18020+
static __inline__ __ATTRS_o_ai void
18021+
vec_xst(vector signed int __vec, ptrdiff_t __offset, signed int *__ptr) {
1801918022
signed char *__addr = (signed char *)__ptr + __offset;
1802018023
*(unaligned_vec_sint *)__addr = __vec;
1802118024
}
1802218025

18023-
static inline __ATTRS_o_ai void
18026+
static __inline__ __ATTRS_o_ai void
1802418027
vec_xst(vector unsigned int __vec, ptrdiff_t __offset, unsigned int *__ptr) {
1802518028
signed char *__addr = (signed char *)__ptr + __offset;
1802618029
*(unaligned_vec_uint *)__addr = __vec;
1802718030
}
1802818031

18029-
static inline __ATTRS_o_ai void vec_xst(vector float __vec, ptrdiff_t __offset,
18030-
float *__ptr) {
18032+
static __inline__ __ATTRS_o_ai void vec_xst(vector float __vec,
18033+
ptrdiff_t __offset, float *__ptr) {
1803118034
signed char *__addr = (signed char *)__ptr + __offset;
1803218035
*(unaligned_vec_float *)__addr = __vec;
1803318036
}
1803418037

1803518038
#ifdef __VSX__
18036-
static inline __ATTRS_o_ai void vec_xst(vector signed long long __vec,
18037-
ptrdiff_t __offset,
18038-
signed long long *__ptr) {
18039+
static __inline__ __ATTRS_o_ai void vec_xst(vector signed long long __vec,
18040+
ptrdiff_t __offset,
18041+
signed long long *__ptr) {
1803918042
signed char *__addr = (signed char *)__ptr + __offset;
1804018043
*(unaligned_vec_sll *)__addr = __vec;
1804118044
}
1804218045

18043-
static inline __ATTRS_o_ai void vec_xst(vector unsigned long long __vec,
18044-
ptrdiff_t __offset,
18045-
unsigned long long *__ptr) {
18046+
static __inline__ __ATTRS_o_ai void vec_xst(vector unsigned long long __vec,
18047+
ptrdiff_t __offset,
18048+
unsigned long long *__ptr) {
1804618049
signed char *__addr = (signed char *)__ptr + __offset;
1804718050
*(unaligned_vec_ull *)__addr = __vec;
1804818051
}
1804918052

18050-
static inline __ATTRS_o_ai void vec_xst(vector double __vec, ptrdiff_t __offset,
18051-
double *__ptr) {
18053+
static __inline__ __ATTRS_o_ai void vec_xst(vector double __vec,
18054+
ptrdiff_t __offset, double *__ptr) {
1805218055
signed char *__addr = (signed char *)__ptr + __offset;
1805318056
*(unaligned_vec_double *)__addr = __vec;
1805418057
}
1805518058
#endif
1805618059

1805718060
#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
1805818061
defined(__SIZEOF_INT128__)
18059-
static inline __ATTRS_o_ai void vec_xst(vector signed __int128 __vec,
18060-
ptrdiff_t __offset,
18061-
signed __int128 *__ptr) {
18062+
static __inline__ __ATTRS_o_ai void vec_xst(vector signed __int128 __vec,
18063+
ptrdiff_t __offset,
18064+
signed __int128 *__ptr) {
1806218065
signed char *__addr = (signed char *)__ptr + __offset;
1806318066
*(unaligned_vec_si128 *)__addr = __vec;
1806418067
}
1806518068

18066-
static inline __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec,
18067-
ptrdiff_t __offset,
18068-
unsigned __int128 *__ptr) {
18069+
static __inline__ __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec,
18070+
ptrdiff_t __offset,
18071+
unsigned __int128 *__ptr) {
1806918072
signed char *__addr = (signed char *)__ptr + __offset;
1807018073
*(unaligned_vec_ui128 *)__addr = __vec;
1807118074
}
@@ -18075,51 +18078,51 @@ static inline __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec,
1807518078

1807618079
#if defined(__POWER10_VECTOR__) && defined(__VSX__) && \
1807718080
defined(__SIZEOF_INT128__)
18078-
static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18079-
ptrdiff_t __offset,
18080-
signed char *__ptr) {
18081+
static __inline__ __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18082+
ptrdiff_t __offset,
18083+
signed char *__ptr) {
1808118084
*(__ptr + __offset) = (signed char)__vec[0];
1808218085
}
1808318086

18084-
static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
18085-
ptrdiff_t __offset,
18086-
unsigned char *__ptr) {
18087+
static __inline__ __ATTRS_o_ai void
18088+
vec_xst_trunc(vector unsigned __int128 __vec, ptrdiff_t __offset,
18089+
unsigned char *__ptr) {
1808718090
*(__ptr + __offset) = (unsigned char)__vec[0];
1808818091
}
1808918092

18090-
static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18091-
ptrdiff_t __offset,
18092-
signed short *__ptr) {
18093+
static __inline__ __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18094+
ptrdiff_t __offset,
18095+
signed short *__ptr) {
1809318096
*(__ptr + __offset) = (signed short)__vec[0];
1809418097
}
1809518098

18096-
static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
18097-
ptrdiff_t __offset,
18098-
unsigned short *__ptr) {
18099+
static __inline__ __ATTRS_o_ai void
18100+
vec_xst_trunc(vector unsigned __int128 __vec, ptrdiff_t __offset,
18101+
unsigned short *__ptr) {
1809918102
*(__ptr + __offset) = (unsigned short)__vec[0];
1810018103
}
1810118104

18102-
static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18103-
ptrdiff_t __offset,
18104-
signed int *__ptr) {
18105+
static __inline__ __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18106+
ptrdiff_t __offset,
18107+
signed int *__ptr) {
1810518108
*(__ptr + __offset) = (signed int)__vec[0];
1810618109
}
1810718110

18108-
static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
18109-
ptrdiff_t __offset,
18110-
unsigned int *__ptr) {
18111+
static __inline__ __ATTRS_o_ai void
18112+
vec_xst_trunc(vector unsigned __int128 __vec, ptrdiff_t __offset,
18113+
unsigned int *__ptr) {
1811118114
*(__ptr + __offset) = (unsigned int)__vec[0];
1811218115
}
1811318116

18114-
static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18115-
ptrdiff_t __offset,
18116-
signed long long *__ptr) {
18117+
static __inline__ __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
18118+
ptrdiff_t __offset,
18119+
signed long long *__ptr) {
1811718120
*(__ptr + __offset) = (signed long long)__vec[0];
1811818121
}
1811918122

18120-
static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
18121-
ptrdiff_t __offset,
18122-
unsigned long long *__ptr) {
18123+
static __inline__ __ATTRS_o_ai void
18124+
vec_xst_trunc(vector unsigned __int128 __vec, ptrdiff_t __offset,
18125+
unsigned long long *__ptr) {
1812318126
*(__ptr + __offset) = (unsigned long long)__vec[0];
1812418127
}
1812518128
#endif

clang/test/Headers/altivec-header.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -o - %s | FileCheck %s
22
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -flax-vector-conversions=none -o - %s | FileCheck %s
3+
// RUN: %clang_cc1 -std=c89 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -o - %s | FileCheck %s
34
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -x c++ -o - %s | FileCheck %s
45

56
#include <altivec.h>

0 commit comments

Comments
 (0)