2015-06-29 07:14:35 +08:00
|
|
|
// REQUIRES: powerpc-registered-target
|
2015-03-11 23:57:19 +08:00
|
|
|
// RUN: %clang_cc1 -faltivec -target-feature +power8-vector -triple powerpc64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
|
|
|
|
// RUN: %clang_cc1 -faltivec -target-feature +power8-vector -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-LE
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
// RUN: not %clang_cc1 -faltivec -target-feature +vsx -triple powerpc64-unknown-unknown -emit-llvm %s -o - 2>&1 | FileCheck %s -check-prefix=CHECK-PPC
|
|
|
|
// Added -target-feature +vsx above to avoid errors about "vector double" and to
|
|
|
|
// generate the correct errors for functions that are only overloaded with VSX
|
|
|
|
// (vec_cmpge, vec_cmple). Without this option, there is only one overload so
|
|
|
|
// it is selected.
|
2015-03-11 23:57:19 +08:00
|
|
|
|
2015-06-11 14:25:36 +08:00
|
|
|
vector signed char vsc = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 };
|
|
|
|
vector unsigned char vuc = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 };
|
2015-03-11 23:57:19 +08:00
|
|
|
vector int vi = { -1, 2, -3, 4 };
|
|
|
|
vector unsigned int vui = { 1, 2, 3, 4 };
|
2015-05-16 09:02:25 +08:00
|
|
|
vector bool int vbi = {0, -1, -1, 0};
|
2015-03-11 23:57:19 +08:00
|
|
|
vector bool long long vbll = { 1, 0 };
|
2015-06-05 02:45:44 +08:00
|
|
|
vector signed long long vsll = { 1, 2 };
|
2015-03-11 23:57:19 +08:00
|
|
|
vector unsigned long long vull = { 1, 2 };
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
vector double vda = { 1.e-11, -132.23e10 };
|
2015-03-11 23:57:19 +08:00
|
|
|
|
|
|
|
int res_i;
|
2015-06-11 14:25:36 +08:00
|
|
|
vector signed char res_vsc;
|
|
|
|
vector unsigned char res_vuc;
|
2015-03-11 23:57:19 +08:00
|
|
|
vector int res_vi;
|
|
|
|
vector unsigned int res_vui;
|
2015-05-16 09:02:25 +08:00
|
|
|
vector bool int res_vbi;
|
2015-03-11 23:57:19 +08:00
|
|
|
vector bool long long res_vbll;
|
2015-06-05 02:45:44 +08:00
|
|
|
vector signed long long res_vsll;
|
|
|
|
vector unsigned long long res_vull;
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
vector double res_vd;
|
2015-03-11 23:57:19 +08:00
|
|
|
|
|
|
|
// CHECK-LABEL: define void @test1
|
|
|
|
void test1() {
|
|
|
|
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
/* vec_abs */
|
|
|
|
res_vsll = vec_abs(vsll);
|
2015-06-29 02:30:36 +08:00
|
|
|
// CHECK: call <2 x i64> @llvm.ppc.altivec.vmaxsd(<2 x i64> %{{[0-9]*}}, <2 x i64>
|
|
|
|
// CHECK-LE: call <2 x i64> @llvm.ppc.altivec.vmaxsd(<2 x i64> %{{[0-9]*}}, <2 x i64>
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
// CHECK-PPC: error: call to 'vec_abs' is ambiguous
|
|
|
|
|
|
|
|
res_vd = vec_abs(vda);
|
|
|
|
// CHECK: store <2 x i64> <i64 9223372036854775807, i64 9223372036854775807>, <2 x i64>*
|
|
|
|
// CHECK: and <2 x i64>
|
|
|
|
// CHECK-LE: store <2 x i64> <i64 9223372036854775807, i64 9223372036854775807>, <2 x i64>*
|
|
|
|
// CHECK-LE: and <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_abs' is ambiguous
|
|
|
|
|
|
|
|
/* vec_add */
|
|
|
|
res_vsll = vec_add(vsll, vsll);
|
|
|
|
// CHECK: add <2 x i64>
|
|
|
|
// CHECK-LE: add <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_add' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_add(vull, vull);
|
|
|
|
// CHECK: add <2 x i64>
|
|
|
|
// CHECK-LE: add <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_add' is ambiguous
|
|
|
|
|
2015-07-03 03:29:05 +08:00
|
|
|
/* vec_mergee */
|
|
|
|
res_vbi = vec_mergee(vbi, vbi);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
|
|
|
|
res_vi = vec_mergee(vi, vi);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
|
|
|
|
res_vui = vec_mergee(vui, vui);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_mergee'
|
|
|
|
|
|
|
|
/* vec_mergeo */
|
|
|
|
res_vbi = vec_mergeo(vbi, vbi);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
|
|
|
|
res_vi = vec_mergeo(vi, vi);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
|
|
|
|
res_vui = vec_mergeo(vui, vui);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vperm
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_mergeo'
|
|
|
|
|
2015-03-11 23:57:19 +08:00
|
|
|
/* vec_cmpeq */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vbll = vec_cmpeq(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_cmpeq(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
|
|
|
|
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
/* vec_cmpge */
|
|
|
|
res_vbll = vec_cmpge(vsll, vsll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpge' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_cmpge(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpge' is ambiguous
|
|
|
|
|
|
|
|
/* vec_cmple */
|
|
|
|
res_vbll = vec_cmple(vsll, vsll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmple' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_cmple(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmple' is ambiguous
|
|
|
|
|
2015-03-11 23:57:19 +08:00
|
|
|
/* vec_cmpgt */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vbll = vec_cmpgt(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpgt' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_cmpgt(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmpgt' is ambiguous
|
|
|
|
|
Add missing builtins to altivec.h for ABI compliance (vol. 1)
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
2015-06-27 03:27:20 +08:00
|
|
|
/* vec_cmplt */
|
|
|
|
res_vbll = vec_cmplt(vsll, vsll);
|
|
|
|
// CHECK: call <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64> %{{[0-9]*}}, <2 x i64> %{{[0-9]*}})
|
|
|
|
// CHECK-LE: call <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64> %{{[0-9]*}}, <2 x i64> %{{[0-9]*}})
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmplt' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_cmplt(vull, vull);
|
|
|
|
// CHECK: call <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64> %{{[0-9]*}}, <2 x i64> %{{[0-9]*}})
|
|
|
|
// CHECK-LE: call <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64> %{{[0-9]*}}, <2 x i64> %{{[0-9]*}})
|
|
|
|
// CHECK-PPC: error: call to 'vec_cmplt' is ambiguous
|
|
|
|
|
2015-03-11 23:57:19 +08:00
|
|
|
/* ----------------------- predicates --------------------------- */
|
|
|
|
/* vec_all_eq */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_eq(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_eq(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// 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(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_eq(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vbll, vull);
|
|
|
|
// 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(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
|
|
|
|
|
|
|
|
/* vec_all_ne */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ne(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ne(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// 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(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ne(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vbll, vull);
|
|
|
|
// 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(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_eq */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_eq(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_eq(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// 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(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_eq(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vbll, vull);
|
|
|
|
// 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(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_ne */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ne(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ne(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// 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(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ne(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vbll, vull);
|
|
|
|
// 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(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
|
|
|
|
|
|
|
|
/* vec_all_ge */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ge(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ge(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_ge(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_ge(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_ge(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_ge(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
|
|
|
|
|
|
|
|
/* vec_all_gt */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_gt(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_gt(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_gt(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_gt(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_gt(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_gt(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
|
|
|
|
|
|
|
|
/* vec_all_le */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_le(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_le(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_le(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_le(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_le(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_le(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_le' is ambiguous
|
|
|
|
|
|
|
|
/* vec_all_lt */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_lt(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_lt(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_lt(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_all_lt(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_lt(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_all_lt(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_ge */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ge(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ge(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_ge(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_ge(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_ge(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_ge(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_gt */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_gt(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_gt(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_gt(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_gt(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_gt(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_gt(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_le */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_le(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_le(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_le(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_le(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_le(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_le(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_le' is ambiguous
|
|
|
|
|
|
|
|
/* vec_any_lt */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_lt(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_lt(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// 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(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_lt(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_i = vec_any_lt(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_lt(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
|
|
|
res_i = vec_any_lt(vbll, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
|
|
|
|
// CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
|
|
|
|
|
|
|
|
/* vec_max */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_max(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_max(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_max(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_max(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_max(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_max(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxud
|
|
|
|
// CHECK-PPC: error: call to 'vec_max' is ambiguous
|
|
|
|
|
|
|
|
/* vec_min */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_min(vsll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_min(vbll, vsll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_min(vsll, vbll);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminsd
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_min(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_min(vbll, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_min(vull, vbll);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vminud
|
|
|
|
// CHECK-PPC: error: call to 'vec_min' is ambiguous
|
|
|
|
|
|
|
|
/* vec_mule */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_mule(vi, vi);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vmulesw
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmulosw
|
|
|
|
// CHECK-PPC: error: call to 'vec_mule' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_mule(vui , vui);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vmuleuw
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmulouw
|
|
|
|
// CHECK-PPC: error: call to 'vec_mule' is ambiguous
|
|
|
|
|
|
|
|
/* vec_mulo */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_mulo(vi, vi);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vmulosw
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmulesw
|
|
|
|
// CHECK-PPC: error: call to 'vec_mulo' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_mulo(vui, vui);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vmulouw
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vmuleuw
|
|
|
|
// CHECK-PPC: error: call to 'vec_mulo' is ambiguous
|
|
|
|
|
2015-05-16 09:02:25 +08:00
|
|
|
/* vec_packs */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vi = vec_packs(vsll, vsll);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vpksdss
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vpksdss
|
|
|
|
// CHECK-PPC: error: call to 'vec_packs' is ambiguous
|
|
|
|
|
|
|
|
res_vui = vec_packs(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-PPC: error: call to 'vec_packs' is ambiguous
|
|
|
|
|
|
|
|
/* vec_packsu */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vui = vec_packsu(vsll, vsll);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vpksdus
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vpksdus
|
|
|
|
// CHECK-PPC: error: call to 'vec_packsu' is ambiguous
|
|
|
|
|
|
|
|
res_vui = vec_packsu(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-PPC: error: call to 'vec_packsu' is ambiguous
|
|
|
|
|
2015-03-11 23:57:19 +08:00
|
|
|
/* vec_rl */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_rl(vsll, vull);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: @llvm.ppc.altivec.vrld
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vrld
|
|
|
|
// CHECK-PPC: error: call to 'vec_rl' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_rl(vull, vull);
|
|
|
|
// CHECK: @llvm.ppc.altivec.vrld
|
|
|
|
// CHECK-LE: @llvm.ppc.altivec.vrld
|
|
|
|
// CHECK-PPC: error: call to 'vec_rl' is ambiguous
|
|
|
|
|
|
|
|
/* vec_sl */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_sl(vsll, vull);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: shl <2 x i64>
|
|
|
|
// CHECK-LE: shl <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sl' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_sl(vull, vull);
|
|
|
|
// CHECK: shl <2 x i64>
|
|
|
|
// CHECK-LE: shl <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sl' is ambiguous
|
|
|
|
|
|
|
|
/* vec_sr */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_sr(vsll, vull);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: ashr <2 x i64>
|
|
|
|
// CHECK-LE: ashr <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sr' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_sr(vull, vull);
|
|
|
|
// CHECK: lshr <2 x i64>
|
|
|
|
// CHECK-LE: lshr <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sr' is ambiguous
|
|
|
|
|
|
|
|
/* vec_sra */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_sra(vsll, vull);
|
2015-03-11 23:57:19 +08:00
|
|
|
// CHECK: ashr <2 x i64>
|
|
|
|
// CHECK-LE: ashr <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sra' is ambiguous
|
|
|
|
|
|
|
|
res_vull = vec_sra(vull, vull);
|
|
|
|
// CHECK: ashr <2 x i64>
|
|
|
|
// CHECK-LE: ashr <2 x i64>
|
|
|
|
// CHECK-PPC: error: call to 'vec_sra' is ambiguous
|
|
|
|
|
2015-05-16 09:02:25 +08:00
|
|
|
/* vec_unpackh */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_unpackh(vi);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_unpackh(vbi);
|
|
|
|
// CHECK: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
|
|
|
|
|
|
|
|
/* vec_unpackl */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_unpackl(vi);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
|
|
|
|
|
|
|
|
res_vbll = vec_unpackl(vbi);
|
|
|
|
// CHECK: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
|
|
|
|
|
|
|
|
/* vec_vpksdss */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vi = vec_vpksdss(vsll, vsll);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vpksdss
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vpksdss
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdss'
|
|
|
|
|
|
|
|
/* vec_vpksdus */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vui = vec_vpksdus(vsll, vsll);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vpksdus
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vpksdus
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdus'
|
|
|
|
|
|
|
|
/* vec_vpkudum */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vi = vec_vpkudum(vsll, vsll);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: vperm
|
|
|
|
// CHECK-LE: vperm
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudum'
|
|
|
|
|
|
|
|
res_vui = vec_vpkudum(vull, vull);
|
|
|
|
// CHECK: vperm
|
|
|
|
// CHECK-LE: vperm
|
|
|
|
|
|
|
|
res_vui = vec_vpkudus(vull, vull);
|
|
|
|
// CHECK: llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vpkudus
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudus'
|
|
|
|
|
|
|
|
/* vec_vupkhsw */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_vupkhsw(vi);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vupkhsw'
|
|
|
|
|
|
|
|
res_vbll = vec_vupkhsw(vbi);
|
|
|
|
// CHECK: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupklsw
|
|
|
|
|
|
|
|
/* vec_vupklsw */
|
2015-06-05 02:45:44 +08:00
|
|
|
res_vsll = vec_vupklsw(vi);
|
2015-05-16 09:02:25 +08:00
|
|
|
// CHECK: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupkhsw
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vupklsw'
|
|
|
|
|
|
|
|
res_vbll = vec_vupklsw(vbi);
|
|
|
|
// CHECK: llvm.ppc.altivec.vupklsw
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vupkhsw
|
|
|
|
|
2015-06-05 02:45:44 +08:00
|
|
|
/* 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
|
|
|
|
|
2015-06-11 14:25:36 +08:00
|
|
|
/* vec_vbpermq */
|
|
|
|
res_vsll = vec_vbpermq(vsc, vsc);
|
|
|
|
// CHECK: llvm.ppc.altivec.vbpermq
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vbpermq
|
|
|
|
|
|
|
|
res_vull = vec_vbpermq(vuc, vuc);
|
|
|
|
// CHECK: llvm.ppc.altivec.vbpermq
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vbpermq
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vbpermq'
|
|
|
|
|
|
|
|
/* vec_vgbbd */
|
|
|
|
res_vsc = vec_vgbbd(vsc);
|
|
|
|
// CHECK: llvm.ppc.altivec.vgbbd
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vgbbd
|
|
|
|
|
|
|
|
res_vuc = vec_vgbbd(vuc);
|
|
|
|
// CHECK: llvm.ppc.altivec.vgbbd
|
|
|
|
// CHECK-LE: llvm.ppc.altivec.vgbbd
|
|
|
|
// CHECK-PPC: warning: implicit declaration of function 'vec_vgbbd'
|
2015-03-11 23:57:19 +08:00
|
|
|
}
|