|
@@ -1,7 +1,13 @@
|
|
// REQUIRES: powerpc-registered-target
|
|
// REQUIRES: powerpc-registered-target
|
|
-// RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s
|
|
|
|
-// RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
|
|
|
|
-// RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-LE
|
|
|
|
|
|
+// RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s \
|
|
|
|
+// RUN: -o - | FileCheck %s
|
|
|
|
+// RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s \
|
|
|
|
+// RUN: -o - | FileCheck %s
|
|
|
|
+// RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown -emit-llvm %s \
|
|
|
|
+// RUN: -o - | FileCheck %s -check-prefix=CHECK-LE
|
|
|
|
+// RUN: not %clang_cc1 -triple powerpc64le-unknown-unknown -emit-llvm %s \
|
|
|
|
+// RUN: -ferror-limit 0 -o - 2>&1 \
|
|
|
|
+// RUN: | FileCheck %s -check-prefix=CHECK-NOALTIVEC
|
|
|
|
|
|
vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };
|
|
vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };
|
|
vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };
|
|
vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };
|
|
@@ -27,6 +33,8 @@ vector int res_vi;
|
|
vector unsigned int res_vui;
|
|
vector unsigned int res_vui;
|
|
vector float res_vf;
|
|
vector float res_vf;
|
|
|
|
|
|
|
|
+// CHECK-NOALTIVEC: error: unknown type name 'vector'
|
|
|
|
+
|
|
signed char param_sc;
|
|
signed char param_sc;
|
|
unsigned char param_uc;
|
|
unsigned char param_uc;
|
|
short param_s;
|
|
short param_s;
|
|
@@ -66,8 +74,16 @@ void test1() {
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxsw
|
|
// CHECK-LE: @llvm.ppc.altivec.vmaxsw
|
|
|
|
|
|
vf = vec_abs(vf);
|
|
vf = vec_abs(vf);
|
|
-// CHECK: and <4 x i32>
|
|
|
|
-// CHECK-LE: and <4 x i32>
|
|
|
|
|
|
+// CHECK: bitcast <4 x float> %{{.*}} to <4 x i32>
|
|
|
|
+// CHECK: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647>
|
|
|
|
+// CHECK: bitcast <4 x i32> %{{.*}} to <4 x float>
|
|
|
|
+// CHECK: store <4 x float> %{{.*}}, <4 x float>* @vf
|
|
|
|
+// CHECK-LE: bitcast <4 x float> %{{.*}} to <4 x i32>
|
|
|
|
+// CHECK-LE: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647>
|
|
|
|
+// CHECK-LE: bitcast <4 x i32> %{{.*}} to <4 x float>
|
|
|
|
+// CHECK-LE: store <4 x float> %{{.*}}, <4 x float>* @vf
|
|
|
|
+// CHECK-NOALTIVEC: error: use of undeclared identifier 'vf'
|
|
|
|
+// CHECK-NOALTIVEC: vf = vec_abs(vf)
|
|
|
|
|
|
/* vec_abs */
|
|
/* vec_abs */
|
|
vsc = vec_abss(vsc);
|
|
vsc = vec_abss(vsc);
|