diff options
author | Bill Seurer <seurer@linux.vnet.ibm.com> | 2015-06-04 18:45:44 +0000 |
---|---|---|
committer | Bill Seurer <seurer@linux.vnet.ibm.com> | 2015-06-04 18:45:44 +0000 |
commit | 8be14f11ce5dc913a0cb553baf351fd2f3b1bc79 (patch) | |
tree | f352fb1e4f6cee458cef994b79a2dceec4883c9e /clang/test/CodeGen/builtins-ppc-p8vector.c | |
parent | 50d0fbd2b95dc931fe1803468628a7e53ad1bbee (diff) | |
download | bcm5719-llvm-8be14f11ce5dc913a0cb553baf351fd2f3b1bc79.tar.gz bcm5719-llvm-8be14f11ce5dc913a0cb553baf351fd2f3b1bc79.zip |
[PowerPC] This revision adds 68 of the missing "Predefined Functions for Vector Programming" from appendix A of the OpenPOWER ABI for Linux Supplement document.
I also added tests for the new functions and updated another test that was looking for specific line numbers in error messages from altivec.h.
https://llvm.org/bugs/show_bug.cgi?id=23679
http://reviews.llvm.org/D10131
llvm-svn: 239066
Diffstat (limited to 'clang/test/CodeGen/builtins-ppc-p8vector.c')
-rw-r--r-- | clang/test/CodeGen/builtins-ppc-p8vector.c | 166 |
1 files changed, 104 insertions, 62 deletions
diff --git a/clang/test/CodeGen/builtins-ppc-p8vector.c b/clang/test/CodeGen/builtins-ppc-p8vector.c index c91686c0ea7..f74bbad9daf 100644 --- a/clang/test/CodeGen/builtins-ppc-p8vector.c +++ b/clang/test/CodeGen/builtins-ppc-p8vector.c @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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' @@ -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' @@ -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' @@ -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 + } |