1*a9ddb7d5SMaryam Moghadas // RUN: %clang_cc1 -flax-vector-conversions=none -target-feature +vsx -triple powerpc64-unknown-unknown -emit-llvm %s \
2f563bd74SQiu Chaofan // RUN: -o - | FileCheck %s
3f563bd74SQiu Chaofan
4f563bd74SQiu Chaofan #include <altivec.h>
5f563bd74SQiu Chaofan
6f563bd74SQiu Chaofan // CHECK-LABEL: @_Z5test1Dv8_tS_
7f563bd74SQiu Chaofan // CHECK: @llvm.ppc.altivec.vcmpequh.p
test1(vector unsigned short v1,vector unsigned short v2)8f563bd74SQiu Chaofan bool test1(vector unsigned short v1, vector unsigned short v2) {
9f563bd74SQiu Chaofan return v1 == v2;
10f563bd74SQiu Chaofan }
11f563bd74SQiu Chaofan
12f563bd74SQiu Chaofan // CHECK-LABEL: @_Z5test2Dv2_mS_Dv2_lS0_Dv2_yS1_Dv2_xS2_Dv2_dS3_
test2(vector unsigned long v1,vector unsigned long v2,vector long v3,vector long v4,vector unsigned long long v5,vector unsigned long long v6,vector long long v7,vector long long v8,vector double v9,vector double v10)13f563bd74SQiu Chaofan bool test2(vector unsigned long v1, vector unsigned long v2,
14f563bd74SQiu Chaofan vector long v3, vector long v4,
15f563bd74SQiu Chaofan vector unsigned long long v5, vector unsigned long long v6,
16f563bd74SQiu Chaofan vector long long v7, vector long long v8,
17f563bd74SQiu Chaofan vector double v9, vector double v10) {
18f563bd74SQiu Chaofan // CHECK: @llvm.ppc.altivec.vcmpequd.p
19f563bd74SQiu Chaofan bool res = v1 == v2;
20f563bd74SQiu Chaofan
21f563bd74SQiu Chaofan // CHECK: @llvm.ppc.altivec.vcmpequd.p
22f563bd74SQiu Chaofan res |= v3 == v4;
23f563bd74SQiu Chaofan
24f563bd74SQiu Chaofan // CHECK: @llvm.ppc.altivec.vcmpequd.p
25f563bd74SQiu Chaofan res |= v5 == v6;
26f563bd74SQiu Chaofan
27f563bd74SQiu Chaofan // CHECK: @llvm.ppc.altivec.vcmpequd.p
28f563bd74SQiu Chaofan res |= v7 == v8;
29f563bd74SQiu Chaofan
30f563bd74SQiu Chaofan // CHECK: @llvm.ppc.vsx.xvcmpeqdp.p
31f563bd74SQiu Chaofan res |= v9 == v10;
32f563bd74SQiu Chaofan return res;
33f563bd74SQiu Chaofan }
34f563bd74SQiu Chaofan
35