Expand Up
@@ -7,22 +7,22 @@ vector int vi = { -1, 2, -3, 4 };
vector unsigned int vui = { 1 , 2 , 3 , 4 };
vector bool int vbi = {0 , -1 , -1 , 0 };
vector bool long long vbll = { 1 , 0 };
vector long long vll = { 1 , 2 };
vector signed long long vsll = { 1 , 2 };
vector unsigned long long vull = { 1 , 2 };
int res_i ;
vector int res_vi ;
vector unsigned int res_vui ;
vector bool int res_vbi ;
vector long long res_vll ;
vector unsigned long long res_vull ;
vector bool long long res_vbll ;
vector signed long long res_vsll ;
vector unsigned long long res_vull ;
// CHECK-LABEL: define void @test1
void test1 () {
/* vec_cmpeq */
res_vbll = vec_cmpeq (vll , vll );
res_vbll = vec_cmpeq (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd
// CHECK-LE: @llvm.ppc.altivec.vcmpequd
// CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
Expand All
@@ -33,7 +33,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
/* vec_cmpgt */
res_vbll = vec_cmpgt (vll , vll );
res_vbll = vec_cmpgt (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd
// CHECK-PPC: error: call to 'vec_cmpgt' is ambiguous
Expand All
@@ -45,12 +45,12 @@ void test1() {
/* ----------------------- predicates --------------------------- */
/* vec_all_eq */
res_i = vec_all_eq (vll , vll );
res_i = vec_all_eq (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
res_i = vec_all_eq (vll , vbll );
res_i = vec_all_eq (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
Expand All
@@ -65,7 +65,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
res_i = vec_all_eq (vbll , vll );
res_i = vec_all_eq (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
Expand All
@@ -81,12 +81,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
/* vec_all_ne */
res_i = vec_all_ne (vll , vll );
res_i = vec_all_ne (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
res_i = vec_all_ne (vll , vbll );
res_i = vec_all_ne (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
Expand All
@@ -101,7 +101,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
res_i = vec_all_ne (vbll , vll );
res_i = vec_all_ne (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
Expand All
@@ -117,12 +117,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
/* vec_any_eq */
res_i = vec_any_eq (vll , vll );
res_i = vec_any_eq (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
res_i = vec_any_eq (vll , vbll );
res_i = vec_any_eq (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
Expand All
@@ -137,7 +137,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
res_i = vec_any_eq (vbll , vll );
res_i = vec_any_eq (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
Expand All
@@ -153,12 +153,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
/* vec_any_ne */
res_i = vec_any_ne (vll , vll );
res_i = vec_any_ne (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
res_i = vec_any_ne (vll , vbll );
res_i = vec_any_ne (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
Expand All
@@ -173,7 +173,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
res_i = vec_any_ne (vbll , vll );
res_i = vec_any_ne (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpequd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
Expand All
@@ -189,12 +189,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
/* vec_all_ge */
res_i = vec_all_ge (vll , vll );
res_i = vec_all_ge (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
res_i = vec_all_ge (vll , vbll );
res_i = vec_all_ge (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
Expand All
@@ -209,7 +209,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
res_i = vec_all_ge (vbll , vll );
res_i = vec_all_ge (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
Expand All
@@ -225,12 +225,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
/* vec_all_gt */
res_i = vec_all_gt (vll , vll );
res_i = vec_all_gt (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
res_i = vec_all_gt (vll , vbll );
res_i = vec_all_gt (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
Expand All
@@ -245,7 +245,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
res_i = vec_all_gt (vbll , vll );
res_i = vec_all_gt (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
Expand All
@@ -261,12 +261,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
/* vec_all_le */
res_i = vec_all_le (vll , vll );
res_i = vec_all_le (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
res_i = vec_all_le (vll , vbll );
res_i = vec_all_le (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
Expand All
@@ -281,7 +281,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
res_i = vec_all_le (vbll , vll );
res_i = vec_all_le (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
Expand All
@@ -297,12 +297,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
/* vec_all_lt */
res_i = vec_all_lt (vll , vll );
res_i = vec_all_lt (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
res_i = vec_all_lt (vll , vbll );
res_i = vec_all_lt (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
Expand All
@@ -317,7 +317,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
res_i = vec_all_lt (vbll , vll );
res_i = vec_all_lt (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
Expand All
@@ -333,12 +333,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
/* vec_any_ge */
res_i = vec_any_ge (vll , vll );
res_i = vec_any_ge (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
res_i = vec_any_ge (vll , vbll );
res_i = vec_any_ge (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
Expand All
@@ -353,7 +353,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
res_i = vec_any_ge (vbll , vll );
res_i = vec_any_ge (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
Expand All
@@ -369,12 +369,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
/* vec_any_gt */
res_i = vec_any_gt (vll , vll );
res_i = vec_any_gt (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
res_i = vec_any_gt (vll , vbll );
res_i = vec_any_gt (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
Expand All
@@ -389,7 +389,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
res_i = vec_any_gt (vbll , vll );
res_i = vec_any_gt (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
Expand All
@@ -405,12 +405,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
/* vec_any_le */
res_i = vec_any_le (vll , vll );
res_i = vec_any_le (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
res_i = vec_any_le (vll , vbll );
res_i = vec_any_le (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
Expand All
@@ -425,7 +425,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
res_i = vec_any_le (vbll , vll );
res_i = vec_any_le (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
Expand All
@@ -441,12 +441,12 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
/* vec_any_lt */
res_i = vec_any_lt (vll , vll );
res_i = vec_any_lt (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
res_i = vec_any_lt (vll , vbll );
res_i = vec_any_lt (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
Expand All
@@ -461,7 +461,7 @@ void test1() {
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
res_i = vec_any_lt (vbll , vll );
res_i = vec_any_lt (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
Expand All
@@ -477,17 +477,17 @@ void test1() {
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
/* vec_max */
res_vll = vec_max (vll , vll );
res_vsll = vec_max (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
// CHECK-PPC: error: call to 'vec_max' is ambiguous
res_vll = vec_max (vbll , vll );
res_vsll = vec_max (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
// CHECK-PPC: error: call to 'vec_max' is ambiguous
res_vll = vec_max (vll , vbll );
res_vsll = vec_max (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
// CHECK-PPC: error: call to 'vec_max' is ambiguous
Expand All
@@ -508,17 +508,17 @@ void test1() {
// CHECK-PPC: error: call to 'vec_max' is ambiguous
/* vec_min */
res_vll = vec_min (vll , vll );
res_vsll = vec_min (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
// CHECK-PPC: error: call to 'vec_min' is ambiguous
res_vll = vec_min (vbll , vll );
res_vsll = vec_min (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
// CHECK-PPC: error: call to 'vec_min' is ambiguous
res_vll = vec_min (vll , vbll );
res_vsll = vec_min (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
// CHECK-PPC: error: call to 'vec_min' is ambiguous
Expand All
@@ -539,7 +539,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_min' is ambiguous
/* vec_mule */
res_vll = vec_mule (vi , vi );
res_vsll = vec_mule (vi , vi );
// CHECK: @llvm.ppc.altivec.vmulesw
// CHECK-LE: @llvm.ppc.altivec.vmulosw
// CHECK-PPC: error: call to 'vec_mule' is ambiguous
Expand All
@@ -550,7 +550,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_mule' is ambiguous
/* vec_mulo */
res_vll = vec_mulo (vi , vi );
res_vsll = vec_mulo (vi , vi );
// CHECK: @llvm.ppc.altivec.vmulosw
// CHECK-LE: @llvm.ppc.altivec.vmulesw
// CHECK-PPC: error: call to 'vec_mulo' is ambiguous
Expand All
@@ -561,7 +561,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_mulo' is ambiguous
/* vec_packs */
res_vi = vec_packs (vll , vll );
res_vi = vec_packs (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vpksdss
// CHECK-LE: @llvm.ppc.altivec.vpksdss
// CHECK-PPC: error: call to 'vec_packs' is ambiguous
Expand All
@@ -572,7 +572,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_packs' is ambiguous
/* vec_packsu */
res_vui = vec_packsu (vll , vll );
res_vui = vec_packsu (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vpksdus
// CHECK-LE: @llvm.ppc.altivec.vpksdus
// CHECK-PPC: error: call to 'vec_packsu' is ambiguous
Expand All
@@ -583,7 +583,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_packsu' is ambiguous
/* vec_rl */
res_vll = vec_rl (vll , vull );
res_vsll = vec_rl (vsll , vull );
// CHECK: @llvm.ppc.altivec.vrld
// CHECK-LE: @llvm.ppc.altivec.vrld
// CHECK-PPC: error: call to 'vec_rl' is ambiguous
Expand All
@@ -594,7 +594,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_rl' is ambiguous
/* vec_sl */
res_vll = vec_sl (vll , vull );
res_vsll = vec_sl (vsll , vull );
// CHECK: shl <2 x i64>
// CHECK-LE: shl <2 x i64>
// CHECK-PPC: error: call to 'vec_sl' is ambiguous
Expand All
@@ -605,7 +605,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_sl' is ambiguous
/* vec_sr */
res_vll = vec_sr (vll , vull );
res_vsll = vec_sr (vsll , vull );
// CHECK: ashr <2 x i64>
// CHECK-LE: ashr <2 x i64>
// CHECK-PPC: error: call to 'vec_sr' is ambiguous
Expand All
@@ -616,7 +616,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_sr' is ambiguous
/* vec_sra */
res_vll = vec_sra (vll , vull );
res_vsll = vec_sra (vsll , vull );
// CHECK: ashr <2 x i64>
// CHECK-LE: ashr <2 x i64>
// CHECK-PPC: error: call to 'vec_sra' is ambiguous
Expand All
@@ -627,7 +627,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_sra' is ambiguous
/* vec_unpackh */
res_vll = vec_unpackh (vi );
res_vsll = vec_unpackh (vi );
// CHECK: llvm.ppc.altivec.vupkhsw
// CHECK-LE: llvm.ppc.altivec.vupklsw
// CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
Expand All
@@ -638,7 +638,7 @@ void test1() {
// CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
/* vec_unpackl */
res_vll = vec_unpackl (vi );
res_vsll = vec_unpackl (vi );
// CHECK: llvm.ppc.altivec.vupklsw
// CHECK-LE: llvm.ppc.altivec.vupkhsw
// CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
Expand All
@@ -649,19 +649,19 @@ void test1() {
// CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
/* vec_vpksdss */
res_vi = vec_vpksdss (vll , vll );
res_vi = vec_vpksdss (vsll , vsll );
// CHECK: llvm.ppc.altivec.vpksdss
// CHECK-LE: llvm.ppc.altivec.vpksdss
// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdss'
/* vec_vpksdus */
res_vui = vec_vpksdus (vll , vll );
res_vui = vec_vpksdus (vsll , vsll );
// CHECK: llvm.ppc.altivec.vpksdus
// CHECK-LE: llvm.ppc.altivec.vpksdus
// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdus'
/* vec_vpkudum */
res_vi = vec_vpkudum (vll , vll );
res_vi = vec_vpkudum (vsll , vsll );
// CHECK: vperm
// CHECK-LE: vperm
// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudum'
Expand All
@@ -676,7 +676,7 @@ void test1() {
// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudus'
/* vec_vupkhsw */
res_vll = vec_vupkhsw (vi );
res_vsll = vec_vupkhsw (vi );
// CHECK: llvm.ppc.altivec.vupkhsw
// CHECK-LE: llvm.ppc.altivec.vupklsw
// CHECK-PPC: warning: implicit declaration of function 'vec_vupkhsw'
Expand All
@@ -686,7 +686,7 @@ void test1() {
// CHECK-LE: llvm.ppc.altivec.vupklsw
/* vec_vupklsw */
res_vll = vec_vupklsw (vi );
res_vsll = vec_vupklsw (vi );
// CHECK: llvm.ppc.altivec.vupklsw
// CHECK-LE: llvm.ppc.altivec.vupkhsw
// CHECK-PPC: warning: implicit declaration of function 'vec_vupklsw'
Expand All
@@ -695,4 +695,46 @@ void test1() {
// CHECK: llvm.ppc.altivec.vupklsw
// CHECK-LE: llvm.ppc.altivec.vupkhsw
/* vec_max */
res_vsll = vec_max (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
res_vsll = vec_max (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
res_vsll = vec_max (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vmaxsd
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
res_vull = vec_max (vull , vull );
// CHECK: @llvm.ppc.altivec.vmaxud
// CHECK-LE: @llvm.ppc.altivec.vmaxud
res_vull = vec_max (vbll , vull );
// CHECK: @llvm.ppc.altivec.vmaxud
// CHECK-LE: @llvm.ppc.altivec.vmaxud
/* vec_min */
res_vsll = vec_min (vsll , vsll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
res_vsll = vec_min (vbll , vsll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
res_vsll = vec_min (vsll , vbll );
// CHECK: @llvm.ppc.altivec.vminsd
// CHECK-LE: @llvm.ppc.altivec.vminsd
res_vull = vec_min (vull , vull );
// CHECK: @llvm.ppc.altivec.vminud
// CHECK-LE: @llvm.ppc.altivec.vminud
res_vull = vec_min (vbll , vull );
// CHECK: @llvm.ppc.altivec.vminud
// CHECK-LE: @llvm.ppc.altivec.vminud
}