Skip to content

Commit

Permalink
[PPC] Reverting r287772
Browse files Browse the repository at this point in the history
Due to buildbot failure, I revert. Will recommit after investigation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@287775 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Ehsan Amiri committed Nov 23, 2016
1 parent c480c8c commit 9fca84a
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 385 deletions.
176 changes: 1 addition & 175 deletions lib/Headers/altivec.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ static __inline__ vector float __ATTRS_o_ai vec_abs(vector float __a) {
#endif
}

#ifdef __VSX__
#if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
static __inline__ vector double __ATTRS_o_ai vec_abs(vector double __a) {
return __builtin_vsx_xvabsdp(__a);
}
Expand Down Expand Up @@ -348,22 +348,6 @@ vec_adde(vector unsigned __int128 __a, vector unsigned __int128 __b,
}
#endif

static __inline__ vector signed int __ATTRS_o_ai
vec_adde(vector signed int __a, vector signed int __b,
vector signed int __c) {
vector signed int __mask = {1, 1, 1, 1};
vector signed int __carry = __c & __mask;
return vec_add(vec_add(__a, __b), __carry);
}

static __inline__ vector unsigned int __ATTRS_o_ai
vec_adde(vector unsigned int __a, vector unsigned int __b,
vector unsigned int __c) {
vector unsigned int __mask = {1, 1, 1, 1};
vector unsigned int __carry = __c & __mask;
return vec_add(vec_add(__a, __b), __carry);
}

/* vec_addec */

#if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
Expand All @@ -378,50 +362,6 @@ vec_addec(vector unsigned __int128 __a, vector unsigned __int128 __b,
vector unsigned __int128 __c) {
return __builtin_altivec_vaddecuq(__a, __b, __c);
}

static __inline__ vector signed int __ATTRS_o_ai
vec_addec(vector signed int __a, vector signed int __b,
vector signed int __c) {

signed int __result[4];
for (int i = 0; i < 4; i++) {
unsigned int __tempa = (unsigned int) __a[i];
unsigned int __tempb = (unsigned int) __b[i];
unsigned int __tempc = (unsigned int) __c[i];
__tempc = __tempc & 0x00000001;
unsigned long long __longa = (unsigned long long) __tempa;
unsigned long long __longb = (unsigned long long) __tempb;
unsigned long long __longc = (unsigned long long) __tempc;
unsigned long long __sum = __longa + __longb + __longc;
unsigned long long __res = (__sum >> 32) & 0x01;
unsigned long long __tempres = (unsigned int) __res;
__result[i] = (signed int) __tempres;
}

vector signed int ret = { __result[0], __result[1], __result[2], __result[3] };
return ret;
}

static __inline__ vector unsigned int __ATTRS_o_ai
vec_addec(vector unsigned int __a, vector unsigned int __b,
vector unsigned int __c) {

unsigned int __result[4];
for (int i = 0; i < 4; i++) {
unsigned int __tempc = __c[i] & 1;
unsigned long long __longa = (unsigned long long) __a[i];
unsigned long long __longb = (unsigned long long) __b[i];
unsigned long long __longc = (unsigned long long) __tempc;
unsigned long long __sum = __longa + __longb + __longc;
unsigned long long __res = (__sum >> 32) & 0x01;
unsigned long long __tempres = (unsigned int) __res;
__result[i] = (signed int) __tempres;
}

vector unsigned int ret = { __result[0], __result[1], __result[2], __result[3] };
return ret;
}

#endif

/* vec_vaddubm */
Expand Down Expand Up @@ -11149,11 +11089,6 @@ vec_vsubfp(vector float __a, vector float __b) {

/* vec_subc */

static __inline__ vector signed int __ATTRS_o_ai
vec_subc(vector signed int __a, vector signed int __b) {
return __builtin_altivec_vsubcuw(__a, __b);
}

static __inline__ vector unsigned int __ATTRS_o_ai
vec_subc(vector unsigned int __a, vector unsigned int __b) {
return __builtin_altivec_vsubcuw(__a, __b);
Expand Down Expand Up @@ -11387,7 +11322,6 @@ vec_vsubuqm(vector unsigned __int128 __a, vector unsigned __int128 __b) {

/* vec_vsubeuqm */


static __inline__ vector signed __int128 __ATTRS_o_ai
vec_vsubeuqm(vector signed __int128 __a, vector signed __int128 __b,
vector signed __int128 __c) {
Expand All @@ -11400,18 +11334,6 @@ vec_vsubeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b,
return __builtin_altivec_vsubeuqm(__a, __b, __c);
}

static __inline__ vector signed __int128 __ATTRS_o_ai
vec_sube(vector signed __int128 __a, vector signed __int128 __b,
vector signed __int128 __c) {
return __builtin_altivec_vsubeuqm(__a, __b, __c);
}

static __inline__ vector unsigned __int128 __ATTRS_o_ai
vec_sube(vector unsigned __int128 __a, vector unsigned __int128 __b,
vector unsigned __int128 __c) {
return __builtin_altivec_vsubeuqm(__a, __b, __c);
}

/* vec_vsubcuq */

static __inline__ vector signed __int128 __ATTRS_o_ai
Expand All @@ -11437,47 +11359,8 @@ vec_vsubecuq(vector unsigned __int128 __a, vector unsigned __int128 __b,
vector unsigned __int128 __c) {
return __builtin_altivec_vsubecuq(__a, __b, __c);
}

static __inline__ vector signed int __ATTRS_o_ai
vec_subec(vector signed int __a, vector signed int __b,
vector signed int __c) {
return vec_addec(__a, ~__b, __c);
}

static __inline__ vector unsigned int __ATTRS_o_ai
vec_subec(vector unsigned int __a, vector unsigned int __b,
vector unsigned int __c) {
return vec_addec(__a, ~__b, __c);
}

static __inline__ vector signed __int128 __ATTRS_o_ai
vec_subec(vector signed __int128 __a, vector signed __int128 __b,
vector signed __int128 __c) {
return __builtin_altivec_vsubecuq(__a, __b, __c);
}

static __inline__ vector unsigned __int128 __ATTRS_o_ai
vec_subec(vector unsigned __int128 __a, vector unsigned __int128 __b,
vector unsigned __int128 __c) {
return __builtin_altivec_vsubecuq(__a, __b, __c);
}
#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)

static __inline__ vector signed int __ATTRS_o_ai
vec_sube(vector signed int __a, vector signed int __b,
vector signed int __c) {
vector signed int __mask = {1, 1, 1, 1};
vector signed int __carry = __c & __mask;
return vec_adde(__a, ~__b, __carry);
}

static __inline__ vector unsigned int __ATTRS_o_ai
vec_sube(vector unsigned int __a, vector unsigned int __b,
vector unsigned int __c) {
vector unsigned int __mask = {1, 1, 1, 1};
vector unsigned int __carry = __c & __mask;
return vec_adde(__a, ~__b, __carry);
}
/* vec_sum4s */

static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed char __a,
Expand Down Expand Up @@ -16665,63 +16548,6 @@ static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned __int128 __vec,

#endif /* #ifdef __POWER9_VECTOR__ */

static vector float __ATTRS_o_ai vec_neg(vector float __a) {
return -__a;
}

#ifdef __VSX__
static vector double __ATTRS_o_ai vec_neg(vector double __a) {
return -__a;
}

#endif

#if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
static vector long long __ATTRS_o_ai vec_neg(vector long long __a) {
return -__a;
}
#endif

static vector signed int __ATTRS_o_ai vec_neg(vector signed int __a) {
return -__a;
}

static vector signed short __ATTRS_o_ai vec_neg(vector signed short __a) {
return -__a;
}

static vector signed char __ATTRS_o_ai vec_neg(vector signed char __a) {
return -__a;
}

static vector float __ATTRS_o_ai vec_nabs(vector float __a) {
return - vec_abs(__a);
}

#ifdef __VSX__
static vector double __ATTRS_o_ai vec_nabs(vector double __a) {
return - vec_abs(__a);
}

#endif

#if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
static vector long long __ATTRS_o_ai vec_nabs(vector long long __a) {
return __builtin_altivec_vminsd(__a, -__a);
}
#endif

static vector signed int __ATTRS_o_ai vec_nabs(vector signed int __a) {
return __builtin_altivec_vminsw(__a, -__a);
}

static vector signed short __ATTRS_o_ai vec_nabs(vector signed short __a) {
return __builtin_altivec_vminsh(__a, -__a);
}

static vector signed char __ATTRS_o_ai vec_nabs(vector signed char __a) {
return __builtin_altivec_vminsb(__a, -__a);
}
#undef __ATTRS_o_ai

#endif /* __ALTIVEC_H */
79 changes: 0 additions & 79 deletions test/CodeGen/builtins-ppc-altivec.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,43 +89,6 @@ void test1() {
// CHECK-NOALTIVEC: error: use of undeclared identifier 'vf'
// CHECK-NOALTIVEC: vf = vec_abs(vf)

vsc = vec_nabs(vsc);
// CHECK: sub <16 x i8> zeroinitializer
// CHECK: @llvm.ppc.altivec.vminsb
// CHECK-LE: sub <16 x i8> zeroinitializer
// CHECK-LE: @llvm.ppc.altivec.vminsb

vs = vec_nabs(vs);
// CHECK: sub <8 x i16> zeroinitializer
// CHECK: @llvm.ppc.altivec.vminsh
// CHECK-LE: sub <8 x i16> zeroinitializer
// CHECK-LE: @llvm.ppc.altivec.vminsh

vi = vec_nabs(vi);
// CHECK: sub <4 x i32> zeroinitializer
// CHECK: @llvm.ppc.altivec.vminsw
// CHECK-LE: sub <4 x i32> zeroinitializer
// CHECK-LE: @llvm.ppc.altivec.vminsw

res_vi = vec_neg(vi);
// CHECK: sub <4 x i32> zeroinitializer, {{%[0-9]+}}
// CHECK-LE: sub <4 x i32> zeroinitializer, {{%[0-9]+}}
// CHECK-NOALTIVEC: error: use of undeclared identifier 'vi'
// CHECK-NOALTIVEC: vi = vec_neg(vi);

res_vs = vec_neg(vs);
// CHECK: sub <8 x i16> zeroinitializer, {{%[0-9]+}}
// CHECK-LE: sub <8 x i16> zeroinitializer, {{%[0-9]+}}
// CHECK-NOALTIVEC: error: use of undeclared identifier 'vs'
// CHECK-NOALTIVEC: res_vs = vec_neg(vs);

res_vsc = vec_neg(vsc);
// CHECK: sub <16 x i8> zeroinitializer, {{%[0-9]+}}
// CHECK-LE: sub <16 x i8> zeroinitializer, {{%[0-9]+}}
// CHECK-NOALTIVEC: error: use of undeclared identifier 'vsc'
// CHECK-NOALTIVEC: res_vsc = vec_neg(vsc);


/* vec_abs */
vsc = vec_abss(vsc);
// CHECK: @llvm.ppc.altivec.vsubsbs
Expand Down Expand Up @@ -222,22 +185,6 @@ void test1() {
// CHECK: fadd <4 x float>
// CHECK-LE: fadd <4 x float>

res_vi = vec_adde(vi, vi, vi);
// CHECK: and <4 x i32>
// CHECK: add <4 x i32>
// CHECK: add <4 x i32>
// CHECK-LE: and <4 x i32>
// CHECK-LE: add <4 x i32>
// CHECK-LE: add <4 x i32>

res_vui = vec_adde(vui, vui, vui);
// CHECK: and <4 x i32>
// CHECK: add <4 x i32>
// CHECK: add <4 x i32>
// CHECK-LE: and <4 x i32>
// CHECK-LE: add <4 x i32>
// CHECK-LE: add <4 x i32>

res_vsc = vec_vaddubm(vsc, vsc);
// CHECK: add <16 x i8>
// CHECK-LE: add <16 x i8>
Expand Down Expand Up @@ -5326,8 +5273,6 @@ void test6() {
// CHECK: fsub <4 x float>
// CHECK-LE: fsub <4 x float>



res_vsc = vec_vsububm(vsc, vsc);
// CHECK: sub <16 x i8>
// CHECK-LE: sub <16 x i8>
Expand Down Expand Up @@ -5407,10 +5352,6 @@ void test6() {
/* vec_subc */
res_vui = vec_subc(vui, vui);
// CHECK: @llvm.ppc.altivec.vsubcuw
// CHECK-LE: @llvm.ppc.altivec.vsubcuw

res_vi = vec_subc(vi, vi);
// CHECK: @llvm.ppc.altivec.vsubcuw
// CHECK-LE: @llvm.ppc.altivec.vsubcuw

res_vui = vec_vsubcuw(vui, vui);
Expand Down Expand Up @@ -5490,26 +5431,6 @@ void test6() {
// CHECK: @llvm.ppc.altivec.vsubuws
// CHECK-LE: @llvm.ppc.altivec.vsubuws

res_vi = vec_sube(vi, vi, vi);
// CHECK: and <4 x i32>
// CHECK: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
// CHECK: add <4 x i32>
// CHECK: add <4 x i32>
// CHECK-LE: and <4 x i32>
// CHECK-LE: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
// CHECK-LE: add <4 x i32>
// CHECK-LE: add <4 x i32>

res_vui = vec_sube(vui, vui, vui);
// CHECK: and <4 x i32>
// CHECK: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
// CHECK: add <4 x i32>
// CHECK: add <4 x i32>
// CHECK-LE: and <4 x i32>
// CHECK-LE: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
// CHECK-LE: add <4 x i32>
// CHECK-LE: add <4 x i32>

res_vsc = vec_vsubsbs(vsc, vsc);
// CHECK: @llvm.ppc.altivec.vsubsbs
// CHECK-LE: @llvm.ppc.altivec.vsubsbs
Expand Down
Loading

0 comments on commit 9fca84a

Please sign in to comment.